如果我得到你的问题,你不想隐藏div2,如果离开div1时,鼠标立即进入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之间可能存在差距(那么您必须处理延迟),或者如果其中一个比另一个更重要,那么您没有精确。
不知道你要在这里实现什么,ü可以更具体 – dreamweiver
尝试检查#div2'是否'是'事件的relatedTarget':http://api.jquery.com/event.relatedTarget/ – CBroe