javascript - 将 onclick 分配给函数问题

标签 javascript html function button onclick

我添加onclick函数的代码如下newbutton.onclick = whoWon(this.id)

其他相关代码

var winner;

function whoWon(name){
   winner = name
}

我的问题是,当我尝试分配它时,onclick 会执行,但不会添加 onclick。我知道这一点是因为当我创建新按钮时,变量获胜者始终是最近创建的按钮。另外,当我检查 google chrome 中的元素时,唯一分配的就是 ID 和 Class。

最佳答案

newbutton.onclick = whoWon(this.id) 实际上会调用 whoWon 函数。

您需要按原样传递 whoWon,而不调用它并将其绑定(bind)到 this.id。这应该可以解决问题:

newbutton.onclick = whoWon.bind(null, this.id)

或者正如 @styfle 在评论中提到的,您可以创建一个匿名函数:

newbutton.onclick = () => whoWon(this.id)

关于javascript - 将 onclick 分配给函数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45717672/

相关文章:

jquery - 使用 jscript 创建灰度到图像的颜色效果

javascript - 在 javascript 中为数组和数组数组创建函数。

javascript - if 语句评估不正确

javascript - 如何为 jQuery.validator 添加自定义消息?

用于提取文本的 Html 库

C++ 链接器找不到对局部函数的引用

Python Tkinter : Binding Same Key Twice?

javascript - 是否可以只打印 Canvas 元素?

javascript - 为什么我的图库中的图像返回 403 错误?

javascript - 修复我的 'Save' 按钮