好。我们都知道我们可以这样做:
<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属性,这样当您单击生成的按钮时,它将触发一个名为&#34; myFunction&的函数#34 ;.但它并没有做到这一点。它立即调用该函数。
有谁知道为什么会这样或者我做错了什么?我会喜欢一些帮助。非常感谢您的支持。
答案 0 :(得分:2)
您正在调用MyFunction
,而不是将其指定为事件处理程序,因为您包含括号。将行更改为
object1.onclick=myFunction;
答案 1 :(得分:1)
在分配属性时不应该调用该函数。
更改以下行
object1.onclick=myFunction();
到
object1.onclick=myFunction;
它应该有用。