2011-12-22 81 views
-1

如果你去到这个站点http://rochesterwaterskishow.com/staging,把鼠标悬停在FF或者Chrome上的about链接上,你会看到一个弹出菜单。当你在IE8中做同样的事情时,菜单不显示。我没有检查过IE7。IE8中的jquery小问题

什么导致菜单不显示在IE8中?

的jQuery:

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

滑块效果很酷(我不会使用它) – 2011-12-22 01:31:05

+0

尝试更改它到'$(“#flyout”)。delegate(“*”,“hover”,f,g);' – bevacqua 2011-12-22 01:37:09

回答

1

有趣的是,该错误是不是在菜单或您的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抛出一​​个不稳定。解决这个问题,你应该很好去。

+0

好的。我想我只需要查找几行。谢谢。 – Catfish 2011-12-22 03:34:54

+0

我注意到的唯一方法是在IE8中打开并手动删除“display:none”的CSS规则。如果工作正常,我知道这个问题必须与DOM解析相关,并向后阅读,直到找到无效的东西。如果手动删除CSS规则没有奏效,我会知道这个问题在你的jQuery中。 – Interrobang 2011-12-22 03:37:14

0

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

我也觉得这应该工作:

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

的代码,如果你把一个类中要隐藏/显示div标签一般会针对这些类型的问题更强大,那么你会有更强大的方法来找到它,而不是依靠只有一个div标签在正确的地方。