2014-01-14 5 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

* calling * renderMessage()입니까? – George

+1

먼저 이미지를 첨부 한 다음 클릭 이벤트를 바인딩하십시오. – Maddy

+0

예, 이미지를 볼 수 있지만 클릭하면 아무 일도 일어나지 않습니다. 먼저 이미지를 첨부하면 onclick을 수행하는 것이 도움이되지 않습니다. – MaGi

답변

0

이 줄 :

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

의미 :

div.innerHTML = ... 

당신이 그 DIV의 내용을 교체 :

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

을하지만 당신이 할 때마다 그래서 나에게 할당 한 이벤트 핸들러가없는 새로운 HTML 조각. 로 그 라인을 교체

시도 :

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

같은 당신이 텍스트와 시간 사이에 할 += 다른로 이동합니다.

+0

감사합니다. 그걸 해결 :) 나처럼 멍청한 녀석은 나 혼자서 그것을 알아 내려고 했어? 다시 한번 감사드립니다! – MaGi

+0

반갑습니다. 그런데 jQuery와 그 메소드'.append()'를 사용하는 것이 좋습니다. 왜냐하면 그들은 이러한 까다로운 세부 사항과 브라우저 간 문제를 처리하기 때문입니다. 말할 것도없이 사용하기 쉽습니다. – Tobia

+0

추신 : 대답 옆에있는 회색 체크 표시를 클릭하여 대답을 "수락"해야합니다. – Tobia

관련 문제