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

时间:2014-07-04 11:13:55

标签: javascript buttonclick

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

<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 ;.但它并没有做到这一点。它立即调用该函数。

有谁知道为什么会这样或者我做错了什么?我会喜欢一些帮助。非常感谢您的支持。

2 个答案:

答案 0 :(得分:2)

您正在调用MyFunction,而不是将其指定为事件处理程序,因为您包含括号。将行更改为

object1.onclick=myFunction;

答案 1 :(得分:1)

在分配属性时不应该调用该函数。

更改以下行

object1.onclick=myFunction();

object1.onclick=myFunction;

它应该有用。