簡體   English   中英

Javascript onclick事件未附加

[英]Javascript onclick event not attaching

我試圖將onclick事件附加到我在Javascript中創建的img標簽上,但是由於某種原因,它不想附加。 在當前代碼中,我有:

var img = document.createElement('img');
img.src = pictures[picIndex][0];
img.alt = 'pic';
img.id = "picture_" + picIndex;
img.onclick = function() { alert('click') };
document.getElementById('container').appendChild(img);

但是,當我加載網站時,除了onclick事件外,我什么都得到了,單擊圖像沒有任何作用:

<img src=".." alt="pic" id="picture_3">

為什么不附加它? 我也嘗試過

img.onclick = myFunction;

function myFunction() {
    alert('click');
}

同樣的事情發生了。 如果我手動編輯img標簽以包含onclick函數,則該函數執行得很好,但是我無法終生弄清楚為什么在創建元素時不附加它。

如果您將代碼復制並粘貼到其中,則可能是拼寫錯誤

img.onlclick =

應該

img.onclick =

這是一個演示小提琴: http : //jsfiddle.net/mifi79/CE7PP/

您的問題可能出在排序中-如果您的JS在<div id="container"></div>之前的頁面上(例如在<head> ),則document.getElementById將無法操作因為它尚不存在。

onclick事件不會在HTML中內聯顯示,因為圖像被實例化為Javascript對象,並且onclick處理程序作為圖像對象的屬性存在。 我創建了一個更新的Fiddle( http://jsfiddle.net/mifi79/CE7PP/1/ ),該圖像將圖像對象的onclick屬性值輸出到控制台。

您的事件可能無法正常運行,因為您沒有在非IE瀏覽器中使用addEventListener方法。 也許嘗試一下。

img.addEventListener('click', function () { /* your function here */ }, false);

/* MS fallback */

(img.attachEvent) ? img.attachEvent('onclick', function () { /* func here */ }) : img.addEventListener('click', function () { /* func here */ }, false);

暫無
暫無

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

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