在表格行(<tr>)中有几个输入元素。
当tr失去焦点时(但当用户只是切换到同一tr中的不同输入元素时),我需要执行一些JavaScript代码。
我使用jQuery。
如何实现跨浏览器?
发布于 2013-06-03 02:42:53
我想您正在寻找这种方法(demo,在Chr/Ff/IE10中签入):
var delayedFn, blurredFrom;
$('tr').on('blur', 'input', function(event) {
blurredFrom = event.delegateTarget;
delayedFn = setTimeout(function() {
console.log('Blurred');
}, 0);
});
$('tr').on('focus', 'input', function(event) {
if (blurredFrom === event.delegateTarget) {
clearTimeout(delayedFn);
}
});如你所见,我们用setTimeout延迟了对“真正的模糊处理程序”(在本例中是带有console.log的函数)的调用-如果我们看到焦点停留在同一行,则清除此超时。
我在这里使用委托,所以我不需要每次都调用closest(tr)。但它在这里有另一个副作用,因为处理程序将正确地处理动态添加到表中的输入。
https://stackoverflow.com/questions/16885880
复制相似问题