首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不触发这起变化事件?

为什么不触发这起变化事件?
EN

Stack Overflow用户
提问于 2022-11-02 21:45:17
回答 3查看 41关注 0票数 -3

我试图检测动态添加的<select>元素何时更改了其选项。但是,当我更改它时,它不会触发。

守则:

代码语言:javascript
运行
复制
var diP = document.createElement("select");


diP.add(option);
diP.add(option2);

diP.addEventListener("change", alert("Test"));

div2.appendChild(diP);

当我更改选项时,代码不会发出任何警告。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2022-11-02 21:48:57

您需要将回调作为参数传递给事件侦听器,其中包含事件类型。

代码语言:javascript
运行
复制
diP.addEventListener("change", () => alert("Test"));

另外,请检查您是否正确地选择了div2元素。

HTML:

代码语言:javascript
运行
复制
<div class="div2"> ... </div>

联署材料:

代码语言:javascript
运行
复制
const div2 = document.querySelector('.div2')
票数 1
EN

Stack Overflow用户

发布于 2022-11-02 21:52:22

对于addEventListener,您需要传递函数的名称,而不是调用函数。或者你可以传递一个匿名函数。

代码语言:javascript
运行
复制
function funcName(){

}

diP.addEventListener("change", funcName);

代码语言:javascript
运行
复制
diP.addEventListener("change", function(){
   console.log(this.value)
});
票数 0
EN

Stack Overflow用户

发布于 2022-11-02 21:55:52

我假设,当您的脚本第一次执行时,您会看到一个警告,因为没有将一个函数传递给addEventListener,而是调用它。

为了在输入更改时显示警报,需要传递一个响应于change事件的函数。所以您的代码应该如下所示:

代码语言:javascript
运行
复制
....
diP.addEventListener("change", () => alert("Test"));
...

这样,您就可以说“运行一个函数,它将在每次输入更改时发出警报”。

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

https://stackoverflow.com/questions/74295939

复制
相关文章

相似问题

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