如何在jQuery中触发两个元素的mouseout事件?

Pet*_*son 13 jquery events dom mouseleave

假设我有两个特殊的div,A和B,它们在一个角落重叠:

+-----+
|     |
|  A  |
|   +-----+
+---|     |
    |  B  |
    |     |
    +-----+
Run Code Online (Sandbox Code Playgroud)

我想触发当鼠标离开的事件 A和B.

我试过这个

$("#a, #b").mouseleave(function() { ... });
Run Code Online (Sandbox Code Playgroud)

但是如果鼠标离开任一节点,这会触发事件.我希望在鼠标未超过任一节点时触发事件.

是否有捷径可寻?我有一个想法,涉及全局变量跟踪每个div上的鼠标状态,但我希望更优雅的东西.

ade*_*neo 18

我一直遇到这个问题,如果它适合我​​正在做的事情,我的"快速修复"是以下内容;

var timer;

$("#a, #b").mouseleave(function() {
    timer = setTimeout(doSomething, 10);
}).mouseenter(function() {
    clearTimeout(timer);
});


function doSomething() {
    alert('mouse left');
}
Run Code Online (Sandbox Code Playgroud)

小提琴:http://jsfiddle.net/adeneo/LdDBn/