IE 上的 jquery 悬停问题

发布于 2024-11-07 08:10:55 字数 484 浏览 0 评论 0原文

我刚刚使用 jquery 悬停:

$.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/

I have just using the 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"});
    });
});

I works fine on all browser except IE. I have looking for the others code that work fine in all major browsers(include IE), normally they also using same the way i did.
Anybody can help me to explain what i wrong?
full code on here : http://jsfiddle.net/XrMNr/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

淡笑忘祈一世凡恋 2024-11-14 08:10:55

您所需要的只是:

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

All you need is this:

$(".NaviItem").hover(function() {
    $(this).find('ul:first').show();
}, function() {
    $(this).find('ul:first').hide();
});
  • Select your target elements simply with .NaviItem. This will return all elements with class NaviItem
  • You don't need to iterate using each(). In this case the hover handler is applied to all occurrences of .NaviItem
  • To show/hide you don't need to set the css, just use show() and hide(), or some animation function like fadeOut/fadeIn.
终止放荡 2024-11-14 08:10:55

为什么你的悬停在循环中?你尝试过吗...

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

Why is your hover in a loop? Have you tried...

$('.NaviItem').hover(function(){
    $(this).find('ul:first').css({visibility: "visible", display: "none"}).show();
},function(){
    $(this).find('ul:first').css({visibility: "hidden"});
});
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文