2016-05-17 76 views
0

我在父div内有两个子输入。我想在用户退出父元素时触发事件,但当用户从一个孩子直接移动到另一个时,不会触发事件。在这个例子中,我要求用户独立输入到输入日期和时间:只有退出父元素后触发子事件

<div id="form"> 
    <div id="dateTime"> 
    <input id="date"> 
    <input id="time"> 
    </div> 
</div> 

我一直在使用“.focusout”和“.blur”没有成功如下尝试 - 我的意思的情况下在用户从“日期”选项卡变为“时间”时触发,而不是等待用户退出“时间”并退出父节点“dateTime”div。

$("#form").on('focusout', '#dateTime', function() { 
    alert ('User has exited the "dateTime" div.'); 
}); 
$("#form").on('blur', '#dateTime', function() { 
    alert ('User has exited the "dateTime" div.'); 
}); 

我的方法在HTML结构或使用JQuery方面存在问题吗?

+0

看看http://stackoverflow.com/a/7385673/5549391 – agDev

+1

感谢。那里的强有力的讨论帮助我理解了传播的有用性和局限性。 – runner

+0

它总是'自下而上'让我改变我的方法来简单地测试输入元素是否为空,然后触发下一个函数。干杯 – runner

回答

0

我没有尝试这个,但是我认为这应该工作

$("#dateTime").focusout(function() { 
    if ($(this).has(document.activeElement).length === 0) { 
    alert('User has exited the "dateTime" div.'); 
    } 
}); 
+0

见上面的评论。 – runner

相关问题