我试图检测动态添加的<select>元素何时更改了其选项。但是,当我更改它时,它不会触发。
守则:
var diP = document.createElement("select");
diP.add(option);
diP.add(option2);
diP.addEventListener("change", alert("Test"));
div2.appendChild(diP);当我更改选项时,代码不会发出任何警告。
发布于 2022-11-02 21:48:57
您需要将回调作为参数传递给事件侦听器,其中包含事件类型。
diP.addEventListener("change", () => alert("Test"));另外,请检查您是否正确地选择了div2元素。
HTML:
<div class="div2"> ... </div>联署材料:
const div2 = document.querySelector('.div2')发布于 2022-11-02 21:52:22
对于addEventListener,您需要传递函数的名称,而不是调用函数。或者你可以传递一个匿名函数。
function funcName(){
}
diP.addEventListener("change", funcName);或
diP.addEventListener("change", function(){
console.log(this.value)
});发布于 2022-11-02 21:55:52
我假设,当您的脚本第一次执行时,您会看到一个警告,因为没有将一个函数传递给addEventListener,而是调用它。
为了在输入更改时显示警报,需要传递一个响应于change事件的函数。所以您的代码应该如下所示:
....
diP.addEventListener("change", () => alert("Test"));
...这样,您就可以说“运行一个函数,它将在每次输入更改时发出警报”。
https://stackoverflow.com/questions/74295939
复制相似问题