繁体   English   中英

通过JavaScript创建的“ OnClick”事件会立即触发,而不是在单击对象时触发

[英]“OnClick” events created through JavaScript are triggering immediately, not when the object is clicked

好的。 我们都知道我们可以做这样的事情:

<input type="button" value="Create Button" onclick="addB()"/>
<p id="demo"/>
<script>
function addB() {
var object1 = document.createElement("input");
object1.type="button";
object1.value="Example of value";
document.getElementById("demo").appendChild(object1);
}
</script>

让我们再做一次,但稍作修改。 现在,我们将添加另一个函数并为其赋予另一个属性。

<input type="button" value="Create Button" onclick="addB()"/>
<p id="demo"/>
<script>
function addB() {
var object1 = document.createElement("input");
object1.type="button";
object1.value="Example of value";
object1.onclick=myFunction();
document.getElementById("demo").appendChild(object1);
}

function myFunction() {
alert("You have clicked me.");
}
</script>

如果您花时间阅读代码,那么应该为该按钮分配一个onclick属性,以便当您单击生成的按钮时,它将触发一个名为“ myFunction”的函数。 但这并没有做到。 它立即调用该函数。

有谁知道为什么会这样或我做错了什么? 我希望有帮助。 非常感谢您的支持。

您正在调用MyFunction ,而不是将其分配为事件处理程序,因为您包括了方括号。 将行更改为

object1.onclick=myFunction;

分配为属性时,您不应调用该函数。

更改以下行

object1.onclick=myFunction();

object1.onclick=myFunction;

它应该工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM