首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JavaScript catch onfocus事件

JavaScript catch onfocus事件
EN

Stack Overflow用户
提问于 2018-03-24 04:40:49
回答 1查看 417关注 0票数 1

我有一些输入和一个按钮。我想实现一个功能,允许删除最近关注/关注的输入之一。

我设置了onfocusout函数,该函数设置了一个打开按钮的单击侦听器。如果我将焦点放在第一个输入上,然后将焦点移出,然后单击按钮--效果很好。但是当我专注于第一个输入,然后点击第二个按钮时-我得到了deleteCell()函数被执行了n次,我聚焦了出来。

如何让它只记住上一次的onfocusout事件?它似乎会在点击按钮之前统计我的onfocusout事件。

谢谢。

代码语言:javascript
复制
var input = document.createElement("input");
input.setAttribute("onfocusout", "myFunction()");

function myFunction() {
    document.getElementById("delete-cell").addEventListener("click", function () {
        deleteCell();
    });
}

function deleteCell() {
    alert(1);
}
EN

回答 1

Stack Overflow用户

发布于 2018-03-24 05:55:05

尝试向相关的元素类添加一个焦点输出侦听器,然后为元素焦点输出添加一个" to -delete“类(使用"this”属性)。但是只有在您首先从所有元素中删除这个"to-delete“类之后,才能添加它。这将使您能够继续访问与最近的focusout事件相关的元素。

代码语言:javascript
复制
 $(".element-class").on("focusout", function() {
     $(".element-class").removeClass("to-delete");
     $(this).addClass("to-delete");
 })

然后,只需编写一个函数,该函数将删除由on-click事件触发的带有"to- delete“类的元素。

这里是fiddle:https://jsfiddle.net/gbrodzik/ej4czqrc/6/

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

https://stackoverflow.com/questions/49458006

复制
相关文章

相似问题

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