为什么我的菜单栏诉诸于:hover behavior onload?

问题描述

| 我使用dsmoothmenu jQuery插件页面顶部生成一个工具栏-大约一个月前(大部分时间)页面开始加载(大部分时间),菜单栏的第一项显示为-如果用户将鼠标悬停在该项目上。我花了数小时试图弄清楚是什么原因造成的,但没有取得任何进展。 我还有另一个页面,该页面使用与菜单完全相同的标记,以及相同的dsmoothmenu js / css,但没有显示上述行为。因此,我认为这可能与Meta标记或被覆盖的样式有关。通过与检查员一起调查,似乎something0ѭ元素正以某种方式赋予
display:block
,从而覆盖了
display:none
认样式,该样式应一直有效,直到用户将鼠标悬停在该元素上为止。 这是问题的一个示例:http://www.foodtrucksmap.com/la/ 还有一个工作示例:http://www.foodtrucksmap.com/iphone.html 编辑:因此,我发现,当页面加载完成时,如果鼠标不在窗口的外面,问题只会显现出来。如果将鼠标悬停在页面上,菜单栏将不会向下滑动。再加上它似乎只发生在Chrome中,这让我感到非常困惑。     

解决方法

        右键单击链接,然后单击“在新选项卡中打开链接”或“ ... ...新窗口”,这会在后台打开该窗口,我会在Chrome中看到您的问题。这给了我这个结论。 出于某些奇怪的原因,Google的Chrome浏览器将“虚拟”指针定位在触发脚本的top:1,left:1位置。只要引入实际的“物理”指针,该位置就会接管,问题就不存在了。 由于这似乎是Chrome的问题,我们只能通过一点技巧来防止这种情况。我要说的是,给主div#wrapper左边留有一定的喘息空间吗?或者像第二个示例这样的东西可以起作用!!!     ,        到目前为止,我已经能够发现onMouseOver事件实际上是在页面加载时触发的。 由于我没有直接访问JS文件的权限,因此请在所有文件(而不是jquery文件)中搜索单词“ trigger \”,然后尝试找出它是否随时可能在调用它。 有空的时候我会做更多的研究。     ,        如果Nicklas是正确的并且悬停是出于某种原因触发onload,请尝试使用以下条件将悬停函数的js包装在菜单javascript中:
if(event.target == this) { //Check if the hover event actually targets the object.

//Hover Code//

}
希望这可以帮助!