티스토리 뷰

99-Backup/Javascript

이벤트 전파 방지하기..

Kevin lovedev 2008.10.07 19:49
propergation.. 전파하다라는 뜻을 지니고 있죠.. 무언가를 널리 알리는 그럼 느낌의 단어 입니다..

자바스크립트에서 이벤트의 전파를 방지하려면..기존에는 cancelBubble을 사용했습니다..
이벤트를 정지 시키려는 이유는 여러가지겠지만..필요에 따라 경우가 많이 존재 합니다.

버블 형태로 물방울이 위로 올라가듯 이벤트로 동작하기 때문에 액션 스크립트나 자바스크립트나 마찬가지라고 보면 됩니다.. 조금 다른 것들이 있을지는 모르지만요..

AS3.0에서 이벤트를 제어 하는 방식대로 자바스크립트도 제어해봐야 겠다 하고서... 뒤져 봤더니 자바스크립트도 존재하고 있었네요.... 에혀..모한건지^^??

AS3.0에서는 stopImmediatePropagation 과 stopPropagation이 실행하느냐
아니면 바로 멈추느냐의 차이점입니다. 메소드명을 보면 누가 바로 멈추는지는 알겠지요 ^^
이벤트에서 이 메소드들이 호출되면 그 이후 버블링 과정에서 일어나는 이벤트는 모두 무시되지요..

그런데 자바스크립트에도..stopPropergation이 있네요...

in javascript

//가령 예를 들어... DOM2.x대를 지원하면 stopPropagation을 지원합니다..

button.addEventListener("click", function(evt){
  evt = event || window.event;
  if(!evt.stopPropagation){
           // 현재는 IE만 cancelBubble을 지원하니까..
           evt.cancelBubble=true;
    }else{
           evt.stopPropagation();
    }
});
 

이렇게 제어하면 마음이 한결 깔끔해 질거 같습니다.. 여지껏 짯던 소스들 이벤트 부분 수정해놔야 겠네요..
신고
댓글
댓글쓰기 폼