如果我得到您的问题,如果离开 div1 时鼠标立即进入 div2 或继续在 div2 中,您不想隐藏 div2。
然后你可以这样做:
// returns true if the event is over the jQuery object o
function eventIsOver(event, o) {
if ((!o) || o==null) return false;
var pos = o.offset();
var ex = event.pageX;
var ey = event.pageY;
return (
ex>=pos.left
&& ex<=pos.left+o.width()
&& ey>=pos.top
&& ey<pos.top+o.height()
);
};
$("#div1").mouseleave(function(e){
if (eventIsOver(e, $("#div2")) return;
$("#div2").hide();
});
请注意,根据您的具体情况,您可能需要做不同的事情。例如,如果两个 div 之间可能存在间隙(那么您将不得不处理延迟),或者一个超过另一个,您没有精确说明。