11페이지

XHTML에서 event에 대한 오류

게시됨: 2004 11 28 15:24 22
작성자 박민권
xhtml에 대한 dtd를 선언하여 페이지를 작성하면 window.event를 사용할 수가

없게 됩니다.

<script>
function test(){
window.event.cancelBubble = true;
}
</script>

<div onclick="alert(1)">
<div onclick="test()">클릭해봐</div>
</div>

위의 코드가 제대로 먹힌다면 window.event.cancelBubble = true;에 의해서
"클릭해봐"를 클릭했을시 경고창(1)이 뜨지 않습니다.
그런데 xhtml에 대한 선언을 하게 되면
window.event han no properites 라는 에러가 뜹니다.

익스에서는 xhtml 선언을 해도 아무문제가 없는데 불여우에서는 에러가 납니다.
혹시나 싶어서 오페라 7.54버전을 받아 실행시켜 봤는데 오페라에서도 문제가
없었습니다. 역시 불여우의 문제인가요?

re: event 객체...

게시됨: 2004 11 28 18:32 12
작성자 파란사오정
window.event 객체는 IE와 IE 아류에서만 사용됩니다.
따라서, firefox에서 에러가 나는 것은 오류가 아닙니다.

firefox에서, 겹치는 객체에 대한, 하위 또는 상위로
이벤트 전달을 중지하려면,
stopPropagation() 함수를 사용해야하는 것으로
알고 있습니다.

답변 정말 감사합니다.

게시됨: 2004 11 28 18:57 10
작성자 박민권
파란사오정 씀:window.event 객체는 IE와 IE 아류에서만 사용됩니다.
따라서, firefox에서 에러가 나는 것은 오류가 아닙니다.

firefox에서, 겹치는 객체에 대한, 하위 또는 상위로
이벤트 전달을 중지하려면,
stopPropagation() 함수를 사용해야하는 것으로
알고 있습니다.
답변 정말 감사드립니다.

전또 오류인가 해서...

그렇다면 불여우에서의 event 객체는 어떻게 되는건지 ㅡㅡ;

일단 stopPropagation()에 대해서 조사하다 보면 다른 것들도 나오겠군요.

규정에 준수한 자바스크립트는 자료도 너무 부족하고 더군다나 국내는 너무 희박해서

힘드네요.

re:w3c dom에서의 event 객체

게시됨: 2004 11 28 21:23 49
작성자 파란사오정
DOM에서는 event객체가 미리 정의된 객체형식이 아니라서...
어떤 이름이 있는 것이 아닙니다.
즉, 그때그때 이벤트에 의해서 생성된 인스턴스만 있는 것입니다.

이벤트핸들러로 설정된 함수가 함수인자로 event 객체를
넘겨받는 형식입니다.

아래의 예를 보세요...
( 참고주소: http://www.mozilla.org/docs/dom/domref/ ... t_ref.html )

코드: 모두 선택

function foo(e)
{
 
  // e : 이벤트핸들러로 넘겨진 이벤트 객체
  // e.target : 이벤트가 최초로 발생된 시점의 엘리멘트
  // e.currentTarget : 이벤트가 전달된 현재의 엘리멘트

  alert(e.target.tagName);
  alert(e.currentTarget.tagName);
 
  // 더 이상의 이벤트 전달(Capturing 또는 Bubbling)을 막을려면...
  e.stopPropagation();

}
 
table_el.addEventListener("click", foo, false);