jQuery - .hover()触发子元素

时间:2012-01-20 13:22:42

标签: jquery hover

我正在尝试从<li>定位<ul>并给他们一个悬停事件。

不幸的是,<li>包含一些位于<div>之外的其他<li>

当我将孩子悬挂在子<div>上时会发生.hover()事件时会发生问题,因为DOMwise他们是孩子,即使设计/几何方面完全看起来像是一个不同的元素。

当光标在<li>本身及其子元素的NONE上运行时,是否有任何方法或任何其他事件可以用?

提前致谢。

2 个答案:

答案 0 :(得分:2)

这是为了改变风格吗? 如果是这样,尝试使用CSS伪事件而不是jQuery,例如:

li:hover
{
  background-color:yellow;
}

或者,使用e.stopPropagation(),例如:

$(document).ready(function(){
    $(".parent").click(function(){
        // do whatever;
    });
    $(".child").click(function(e) {
         e.stopPropagation();
    });
});

不幸的是,我不认为这适用于悬停,但它与鼠标悬停和鼠标输出有关,这是悬停基本上使用的。

答案 1 :(得分:1)

您可以使用event.target属性来确定事件的发起者以实现此目的:

$('li').hover(function (event) {
   if ($(this).is(event.target)) {
     // Your code here
  }
});

AFAIK对此没有任何标准,因为DOM元素不一定具有任何大小,并且通常需要冒泡行为。