我添加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/