无法完成这项工作。没有我的确切情况以及为什么我要做我正在做的事情,一个基本的摘要是:
我在父级中有4个元素子元素。我目前正在为孩子们附上一个mouseenter
:
$('.parent').on('mouseenter', '.child', function() {
showSomething();
});
然后我想说
$('.parent').on('mouseleave', function() {
hideSameSomething();
});
但是当孩子的mouseenter
在父母身上发起mouseleave
并产生令人讨厌的闪烁时。我在子处理程序上尝试了e.stopPropagation()
但没有运气。任何想法,当我进入子元素时,以及只有当我真正离开父母时,如何不触发父mouseleave
事件?感谢。
答案 0 :(得分:2)
尝试将两者合二为一。
正式文件:http://api.jquery.com/on/#on-events-selector-data
$(".parent, .child").on({
mouseenter: function() {
// Handle mouseenter...
},
mouseleave: function() {
// Handle mouseleave...
}
});
答案 1 :(得分:1)
尝试:
$('.parent .child').on("mouseenter", function() {
showSomething();
$(this).closest('.parent').on("mouseleave", function() {
hideSameSomething();
});
});