簡體   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