首页 > 解决方案 > 复制“更改”事件监听器函数

问题描述

我有这个 HTML 标签

<input type="file" id="File">

有一个事件监听器

document.getElementById("File").addEventListener("change", function() {alert("test")});

我想在侦听器中复制该函数,但以下所有行都返回 null 或 undefined

document.getElementById("File").getAttribute("change")
//null
document.getElementById("File").change
//undefined
document.getElementById("File").getAttribute("onchange")
//null
document.getElementById("File").onchange
//null

如何从侦听器中复制匿名函数?

标签: javascriptonchangeaddeventlistener

解决方案


你不能。

您没有保留对它的引用,也没有 API 可以将其从侦听器列表中拉出。

重构您的代码,以便从一开始就保留对它的引用。

function myChangeHandler (event) {
    alert("test");
}
document.getElementById("File").addEventListener("change", myChangeHandler);

推荐阅读