2010-03-03 3 views
9

다음 스크립트를 실행하면 페이지로드시 이벤트가 항상 발생합니다. 내가 여기서 뭘 잘못하고 있는지 모르겠다, 나는 요소를 만들고, DOM에서 그것을 찾은 다음 청취자를 붙이지 만, 페이지가로드 될 때 항상 이벤트를 발생시키고, 요소가 클릭되지 않을 때는 항상 이벤트를 발생시킨다.Javascript "addEventListener"페이지로드시 이벤트가 발생합니다.

<script type="text/javascript" language="javascript"> 
    document.write("<div id=\"myDiv\">I am a div</div>"); 
    el = document.getElementById("myDiv"); 
    el.addEventListener("click", alert("clicktrack"), false); 
</script> 

답변

24
el.addEventListener("click", alert("clicktrack"), false); 

이 줄을 실행하면 alert가 호출 undefined을 반환됩니다. 경고 코드를 전달하려면 함수에서이 경고 코드를 래핑해야합니다.

el.addEventListener("click", function() { alert("clicktrack"); }, false); 
1

방법에 대해 :

<script type="text/javascript" language="javascript"> 
    document.write("<div id=\"myDiv\">I am a div</div>"); 
    el = document.getElementById("myDiv"); 
    el.addEventListener("click", function() { alert("clicktrack"); }, false); 
</script> 
관련 문제