需要有关此元素的jQuery onmouseout上的代码的帮助

时间:2011-04-04 07:25:18

标签: javascript jquery html-lists

我使用<UL><LI>创建了导航。离开导航<UL>我想做点什么。我写的代码如下。

请帮助我理解为什么从<LI>移动到另一个<UL>时执行以下代码,而不仅仅是在离开<ul id='navigation'> <li>a</li> <li>b</li> <li>c</li> <li>d</li> </ul> #navigation li { display:inline; float:left; width:50px; border-right:1px solid black; padding:2px; } jQuery("#navigation").mouseout(function(){ alert("hi"); }); 时。

{{1}}

2 个答案:

答案 0 :(得分:7)

来自JQuery文档 - http://api.jquery.com/mouseout/

  

此事件类型可能会导致很多   因事件冒泡而头疼。对于   例如,当鼠标指针移动时   超出了内在元素   例如,将发送mouseout事件   然后,然后涓涓细流到外面。   这可以触发绑定的mouseout   在不合时宜的处理程序。见   .mouseleave()的讨论   有用的替代方案。

请参阅显示this jsfiddle examplemouseoutmouseleave

答案 1 :(得分:2)

尝试mouseleave

  

mouseleave事件不同于   mouseout处理事件的方式   冒泡。如果使用mouseout   这个例子,然后当鼠标   指针移出内心   元素,处理程序将是   触发。这通常是不合需要的   行为。 mouseleave事件,在   另一方面,只触发其处理程序   当鼠标离开元素时   是必然的,而不是后代。所以   这个例子,处理程序被触发   当鼠标离开外面时   元素,但不是内在元素。

DEMO