私があなたの質問を受け取った場合、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();
});
正確なケースによっては、別のことをしなければならない場合があることに注意してください。たとえば、2 つの div の間にギャップがあるかどうか (遅延に対処する必要があります)、または一方が他方の上にある場合は正確ではありませんでした。