2009-06-13 5 views
4

javascript DOM에 비어있는 div가 생성됩니다. 하지만 일부 함수를 호출하면 (예 :비어있는 div가 자바 스크립트에서 인식되지 않음

)
var hover = document.createElement("div"); 
    hover.className = "hover"; 
    overlay.appendChild(hover); 
    hover.onClick = alert("hi"); 

onClick 함수가 작동하지 않습니다. 대신 스크립트의 div 생성 부분에 도달하면 경고를 표시합니다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

hover.onclick = function() { 
    alert('hi!'); 
} 

답변

4

요소에 이벤트를 첨부 할 addEventHandler & attachEvent을 시도해보십시오 :

if (hover.addEventListener) 
{ 
    // addEventHandler Sample : 
    hover.addEventListener('click',function() { 
     alert("hi"); 
    },false); 
} 
else if (hover.attachEvent) 
{ 
    // attachEvent sample : 
    hover.attachEvent('onclick',function() { 
     alert("hi"); 
    }); 
} 
else 
{ 
    hover.onclick = function() { alert("hi"); }; 
} 
+0

굉장합니다. 이것은 효과가 있었다. – amit

+1

이것은 W3C 이벤트 모델을 준수하는 브라우저에서만 작동합니다. IE의 경우 attachEvent를 사용해야합니다. – James

+0

감사합니다. J-P, 답변을 업데이트했습니다. – Canavar

2

당신은, 함수에 온 클릭을 넣어 같은 뭔가가 필요 onClick ". JavaScript는 대소 문자를 구분합니다.

또한 기능을 수행합니다. alert (someString)의 반환 값은 함수가 아닙니다.

+0

이 문제가 다소 해결되었습니다. 하지만 이제는 경고창이 나오지도 마차 영역을 클릭해도 표시됩니다. 더 많은 정보를 제공하려면 마우스를 가져 가면 빈 div가 표시됩니다. 및 CSS 클래스 정의 : .hover { \t 너비 : 320px; \t 신장 : 75px; \t 직위 : 절대; \t 왼쪽 : 28 %; \t 상단 : 32 %; \t z- 색인 : 9999; \t background-color : # 000; \t 오버플로 : 숨김; } – amit

0

속성 이름은 "onclick을"아니다 "

관련 문제