首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

jquery 嵌套 hover有关问题!

2013-03-01 
jquery 嵌套 hover问题!!!html:div classh-r-botdiv classh-navulliaaa/li/ul/divdi

jquery 嵌套 hover问题!!!
html:
<div class="h-r-bot"><div class="h-nav"><ul><li>aaa</li></ul></div><div>
<div class="h-nav-main">bbb</div>
js:
$(document).ready(function(){
                    $(".h-r-bot .h-nav li").hover(
                        function()
                        {
                            $(this).addClass("hover").siblings().removeClass("hover");
                            $(".h-nav-main div.ma").stop().slideDown("normal").animate({height:"50px"});
                        },
                        function()
                        {
                            var b = 0;
                            var li = this;
                            $(".h-nav-main").hover(
                                function(){b = 1},
                                function(){
                                    $(li).removeClass("hover");
                                    $(".h-nav-main div.ma").stop().slideUp("normal");
                                }
                            );
                            if(b == 0)
                            {
                                $(li).removeClass("hover");


                                $(".h-nav-main div.ma").stop().slideUp("normal");
                            }

                        }
                    );
                    
                });

Bug:
当鼠标移到文字aaa时显示bbb,但是当鼠标移走aa而不移到bbb上面时,bbb还会显示,
怎么让上面的情况 隐藏bbb呢。
我上面的js代码  var b 是我后来想到的,但是还是有问题,
上面的代码问题就是  b总等于0, 不知道大虾们能看懂不?
求解 困扰一段时间了,
要是这个思路不行,有别的案例不?? jquery 嵌套?hover
[解决办法]
将var b=0 设置全局变量试试
[解决办法]
你是不是想要这种效果:

<script type="text/javascript">
$(document).ready(function(){
$(".h-r-bot .h-nav li").hover(function(){
$(this).addClass("hover").siblings().removeClass("hover");
$(".h-nav-main div.ma").stop().slideDown("normal").animate({height:"50px"});
});
var b=0;
$(".h-nav-main div.ma").hover(function(){
b=1;
},function(){
$("li.hover").removeClass("hover");
$(".h-nav-main div.ma").stop().slideUp("normal");
});
if(b == 0)
            {
$("li.hover").removeClass("hover");
                $(".h-nav-main div.ma").stop().slideUp("normal");
            }

});           

</script>

[解决办法]
加个时间延迟。setTimeout如下:

$(document).ready(function(){
            $(".h-r-bot .h-nav li").hover(
                    function()
                    {
                        $(this).addClass("hover").siblings().removeClass("hover");
                        $(".h-nav-main div.ma").stop().slideDown("normal").animate({height:"50px"});
                    },
                    function()
                    {
                        var b = 0;


                        var li = this;
                        $(".h-nav-main").hover(
                                function(){b = 1},
                                function(){
                                    $(li).removeClass("hover");
                                    $(".h-nav-main div.ma").stop().slideUp("normal");
                                }
                        );

                        setTimeout(function(){
                            if(b == 0)
                            {
                                $(li).removeClass("hover");
                                $(".h-nav-main div.ma").stop().slideUp("normal");
                            }
                        },10)


                    }
            );

        });

热点排行