Jquery同时事件关系

oqui 发布于 2019-03-09 bind 最后更新 2019-03-09 14:39 0 浏览

当他们同时触发时,我无法弄清楚如何从另一个事件中解除某个事件的绑定。我有这种HTML层次结构:

<div class="first"></div>
<div class="second"></div>
当鼠标输入.first,.second时显示。然后,如果鼠标离开。首先,。秒应该隐藏,除非鼠标正在进入。秒。 所以,我的问题是$('。first')。mouseleave()& $('。second')。mouseenter()同时被触发。我尝试了这样的事情,没有结果:
$('.first').mouseenter(function(){
    $('.second').show();
});
$('.first').mouseleave(function(){
    $('.second').hide();
});
$('.second').mouseenter(function(){
     $('.first').unbind('mouseleave');
});
$('.second').mouseleave(function(){
     $('.first').bind('mouseleave');
     $('.second').hide();
});
任何线索? 以下是示例:http://jsfiddle.net/XdU7H/
已邀请:

nsunt

赞同来自:

超时!

var hideTimer;
$('.first').mouseenter(function(){
    $('.second').show();
});
$('.first').mouseleave(function(){
    hideTimer = setTimeout(function() {
       $('.second').hide();
    }, 500);
});
$('.second').mouseenter(function(){
     clearTimeout(hideTimer);
     $('.first').unbind('mouseleave');
});
$('.second').mouseleave(function(){
     $('.first').bind('mouseleave');
     $('.second').hide();
});
根据您的需要调整它,因为我不确定我是否正在遵循您的逻辑。 :P http://javascript.info/tutorial/events-and-timing-depth