簡體   English   中英

無法將點擊事件附加到動態創建的按鈕

[英]Unable to attach click event to a dynamically created button

我創建了一個JavaScript函數來動態創建一個按鈕

function btn(d) {
    var btn = document.createElement("BUTTON");
    var t = document.createTextNode(d);
    btn.appendChild(t);
    btn.className = "myButton";
    btn.onclick = alert('hello');
    document.body.appendChild(btn);
}

調用此函數時,即使未單擊按鈕,也會彈出警報。 單擊按鈕時我想要警報。 可能是我缺少了一些東西。 請幫忙。 謝謝

您正在調用警報功能而不分配功能

alert('hello'); // evals immediately.

btn.onclick = function () {
    alert("Hello World"); // gives the button a click handler 
                          // which can be called when clicked
};

嘗試使用jQuery,就像這樣(根據問題上的jQuery標簽):

function btn(d) {
    var btn = $('<button/>').addClass('myButton').text(d).appendTo('body').click(function (e) {
        alert('hello');
    })
}

onclick應該看起來像:

btn.onclick = function(){alert('hi');};

您正在分配alert('hello');的返回值alert('hello'); onclick ,而它需要一個功能。 沒有jQuery的正確方法是

if (btn.addEventListener)
  btn.addEventListener ('click',function(){ alert('hello');}, false);
else if (btn.attachEvent)
  btn.attachEvent ('onclick',function(){ alert('hello');});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM