자바스크립트에서는 개별 Element(태그)를 하나의 이벤트 처리 단위로 보고 있기 때문에 하나의 이벤트가 여러개의 Element에 전파된다. 이 것은 좋은 것일 수도 있지만 여러 이벤트가 동시에 호출되기 때문에 해당 하는 이벤트에 대하여 처리 메쏘드를 정의해 놨다면 어디에서 실행될 것인지 혼란을 주게 된다. 간단하게 다음 코드를 보면 이미지를 클릭 시에 바디에 정의된 메쏘드도 호출된다. 이것을 예방하기 위해서는 이벤트가 더 이상 전달 되지 않도록 이벤트가 처리될 타켓을 지정해 줘야 하는데 아쉽게도 IE와 다른 브라우저는 다르게 동작한다. 다음은 IE와 표준을 만족시키는 코드 function Listener(event){ if(!event)event=window.event; if(!event.stopPr..
기본적으로 제공되는 마우스 click 이벤트로는 해결이 불가능하다. 마우스 더블클릭 이벤트가 끝날 때까지 클릭 이벤트가 기다려 주지 않기 때문인데 이것을 스크립트에서 강제로 기다리게 해서 해결 할 수가 있다. span tag 근데 이 방법도 확실한 방법은 아니다. 더블클릭하는 시간을 잘 조절하다보면 cleartimeout 하기 전에 click 이벤트가 실행되어 버리는 경우가 있다. 그렇다고 무턱대고 timeout 시간을 길게 가져가면 클릭시 호출될 함수가 늦게 호출되어서 답답한 기분이 들 수 있다. 가장 좋은 것은 하나를 다른 곳으로 빼는 것인데 그렇게 하기 힘들다면 이 방법도 활용해 볼 만 하다.
- Total
- Today
- Yesterday