我正在尝试从<li>
定位<ul>
并给他们一个悬停事件。
不幸的是,<li>
包含一些位于<div>
之外的其他<li>
。
当我将孩子悬挂在子<div>
上时会发生.hover()事件时会发生问题,因为DOMwise他们是孩子,即使设计/几何方面完全看起来像是一个不同的元素。
当光标在<li>
本身及其子元素的NONE上运行时,是否有任何方法或任何其他事件可以用?
提前致谢。
答案 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元素不一定具有任何大小,并且通常需要冒泡行为。