2010-01-28 5 views
0

다음 함수는 내 웹 페이지의 "onload"이벤트 중에 실행될 예정입니다.JavaScript의 Onmousedown이 작동하지 않습니다 --help!

function setUpTranslation() { 
    var phrases = document.getElementsByTagName("p"); 

    for (i = 0; i<phrases.length; i++) { 
     phrases[i].number = i; 
     phrases[i].childNodes[1].innerHTML = french[i]; 

     phrases[i].childNodes[1].onMouseDown = alert("Hello World"); 
    } 
} 

For 루프를 통해 매번 경고가 발생하는 이유는 누구에게 말해 줄 수 있습니까? 사용자가 내 목록의 문구 중 하나를 마우스로 누를 때만 발생한다고 예상합니다.

누군가가하면 onMouseDown 대문자로 안된다고 말했지만 내가 말하는 오류가 그렇게 할 때

당신의 도움에 미리 감사드립니다 "구현되지."

답변

2

onMouseDown 이벤트를 함수가 아닌 alert ("Hello World") 결과로 설정합니다. 당신이 실행되도록하고자 할 때까지 실행을 유지하기 위해이 같은으로 변경 :

phrases[i].childNodes[1].onMouseDown = function() { alert("Hello World"); }; 

이 함수의 본문으로 경고와 기능을하게하고, 또한 onMouseDown 이벤트의 콜백으로 해당 기능을 설정합니다 .

2

당신이 그것을 부르고 있기 때문입니다. 당신이 원하는 것은 경고 호출하는 함수를 만드는 것입니다 이 호출 할 때 :

phrases[i].childNodes[1].onMouseDown = function() {alert("Hello World");}; 
+0

나를 25 초 박자, 젠장 –

1
phrases[i].childNodes[1].onMouseDown = alert("Hello World"); 

은 어떤이 undefined입니다 (핸들러로 alert의 값을 반환의 다른

phrases[i].childNodes[1].onMouseDown = function(){ alert("Hello World"); }; 

해야한다 아무것도하지 않습니다.)