IE8中的小jquery bug

时间:2011-12-22 01:20:31

标签: jquery internet-explorer

如果您访问此网站http://rochesterwaterskishow.com/staging,请将鼠标悬停在FF或Chrome中的about链接上,您会看到弹出的菜单。当您在IE8中执行相同操作时,菜单不会显示。我没有检查过IE7。

导致菜单无法在IE8中显示的原因是什么?

jQuery的:

    $('#flyout').hover(function() {
        $(this).children('div').show();
    }, function() {
        $(this).children('div').hide();
    });

2 个答案:

答案 0 :(得分:1)

有趣的是,bug根本不在菜单或jQuery表达式中。它在上面一行:

<h1><a href="http://rochesterwaterskishow.com/staging/index.php/site/index"><img src="http://rochesterwaterskishow.com/staging/assets/images/RWSStandardLogo.gif" class="logo" /></h1>

这里没有关闭</a>,这使得IE摇摆不定。解决这个问题,你应该好好去。

答案 1 :(得分:0)

问题是$(this).children('div')在IE8中不起作用。我不知道为什么(编辑:我想这是因为Interrobang的帖子中提到的未公开的<a>标签)。

我确实发现这应该有效:

$('#flyout').hover(function() {
    $(this).find('div').show();
}, function() {
    $(this).find('div').hide();
});

对于这些类型的问题,如果你将一个类放在你要隐藏/显示的div标签中然后你有更强大的方法来找到它而不是依赖那些代码,那么代码通常会更强大在恰当的地方成为唯一的一个div标签..