2014-01-14 92 views
0

我一直試圖讓onclick這個圖像工作,但沒有成功,我試圖尋找不同的方式來做到這一點,這似乎是流行的,也是setAttribute,既不工作,我無法弄清楚爲什麼。你看我是否在某個地方犯了錯誤?Onclick不工作 - Javascript

function renderMessage(theMessage){ 
    var text = document.createTextNode(theMessage.getText()); 
    var time = document.createTextNode(theMessage.getDate()); 
    var div = document.getElementById("writeMessages"); 

    div.appendChild(text); 
    div.innerHTML += " "; 
    div.appendChild(time); 

    // Bilden 

    var image = document.createElement('img'); 
    image.src = 'img/deletePic.png'; 

    image.onclick = function(){ 
     alert("click"); 
     console.log("hej"); 
    }; 

    div.appendChild(image); 
    div.innerHTML += "<br />"; 
} 
+0

你*調用*'renderMessage()'? – George

+1

先嚐試追加圖片然後綁定點擊事件 – Maddy

+0

是的,我稱之爲,我看到圖片,但如果我點擊它,沒有任何反應。 首先追加圖像然後做onclick沒有幫助。 – MaGi

回答

0

這條線:

div.innerHTML += "<br />"; 

表示:

div.innerHTML = div.innerHTML + "<br />"; 

,但每當你這樣做:

div.innerHTML = ... 

更換該分區與內容所以我新的HTML,它沒有你分配的事件處理程序。

嘗試更換該行以:

div.appendChild(document.createElement('br')); 

這同樣與其他+=你的文字和時間之間的事。

+0

謝謝!這解決了它:)像我這樣的新手應該如何自己解決這個問題?再一次感謝你! – MaGi

+0

不客氣。順便說一句,我建議使用jQuery及其方法'.append()'等,因爲它們處理這些棘手的細節和跨瀏覽器問題。更不用說它更容易使用。 – Tobia

+0

PS:你應該通過點擊它旁邊的灰色複選標記來「接受」答案。 – Tobia