首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:如何知道表行何时失去焦点?

问jQuery:如何知道表行何时失去焦点?
EN

Stack Overflow用户
提问于 2013-06-03 02:23:22
回答 1查看 8.7K关注 0票数 4

在表格行(<tr>)中有几个输入元素。

当tr失去焦点时(但当用户只是切换到同一tr中的不同输入元素时),我需要执行一些JavaScript代码。

我使用jQuery。

如何实现跨浏览器?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-03 02:42:53

我想您正在寻找这种方法(demo,在Chr/Ff/IE10中签入):

代码语言:javascript
复制
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)。但它在这里有另一个副作用,因为处理程序将正确地处理动态添加到表中的输入。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16885880

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档