我想使用纯Javascript从元素中删除“焦点”事件监听器,但不起作用
document.getElementById("txttaskdateDeploy").removeEventListener("focus", function(e){});
Run Code Online (Sandbox Code Playgroud)
但下面的jQuery的作品
$("#txttaskdateDeploy").unbind("focus");
Run Code Online (Sandbox Code Playgroud)
谁能说出为什么它不能在纯JavaScript中工作
传递给第二个参数removeEventListener必须是要删除的函数。
您在那里有一个函数表达式,因此它将创建一个全新的函数。由于这是一个新功能,因此它无法与任何现有的事件侦听器匹配,因此不会删除它们。
这可以工作:
const x = function (e) { console.log(1); };
foo.addEventListener("focus", x);
foo.removeEventListener("focus", x);
Run Code Online (Sandbox Code Playgroud)
但这不会(两个不同但相同的功能不是相同的功能):
foo.addEventListener("focus", function (e) { console.log(1); });
foo.removeEventListener("focus", function (e) { console.log(1); });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
421 次 |
| 最近记录: |