IE上的jquery悬停问题

时间:2011-05-17 04:29:15

标签: jquery hover

我刚刚使用jquery hover:

$.each(navItems, function(i){
    $(navItems[i]).hover(function(){
        $(this).find('ul:first').css({visibility: "visible",display: "none"}).show();
    },function(){
        $(this).find('ul:first').css({visibility: "hidden"});
    });
});

我在IE以外的所有浏览器上都能正常工作。我一直在寻找在所有主流浏览器(包括IE)中运行良好的其他代码,通常它们也使用与我相同的方式。 有人可以帮我解释一下我的错吗? 完整代码:http://jsfiddle.net/XrMNr/

2 个答案:

答案 0 :(得分:1)

所有你需要的是:

$(".NaviItem").hover(function() {
    $(this).find('ul:first').show();
}, function() {
    $(this).find('ul:first').hide();
});
  • 只需使用.NaviItem选择目标元素即可。这将返回类NaviItem
  • 的所有元素
  • 您无需使用each()进行迭代。在这种情况下,hover处理程序将应用于所有.NaviItem
  • 要显示/隐藏您不需要设置CSS,只需使用show()hide(),或某些动画功能,例如fadeOut / fadeIn

答案 1 :(得分:0)

为什么你的徘徊在一个循环中?你试过......

$('.NaviItem').hover(function(){
    $(this).find('ul:first').css({visibility: "visible", display: "none"}).show();
},function(){
    $(this).find('ul:first').css({visibility: "hidden"});
});