'removeEventListener'에 해당되는 글 1건

  1. 2007/04/18 attachEvent, detachEvent, addEventListener, removeEventListener

[element].attachEvent("[event]", [function]);
객체의 특정 [event](onmouseover,onmouseout...)가 발생시 정의된[function]을 실행한다.
[element].detachEvent("[event]", [function]);
정의된 [event]의 [function]를 삭제

ex>
document.attachEvent("onmousedown", test);
위처럼 하면 문서에 마우스 다운시 test함수가 실행됩니다.
attachEvent, detachEvent 는 IE 전용이며

모질라 기반 브라우저에서는
[element].addEventListener("mousedown", test, true);
[element].removeEventListener("mousedown", test, true);

[event] 부분이 IE 에선 on을 붙이지만 모질라 기반은 on을 뺀 이벤트만 적용해준다.

크로스 코딩 예제

function addEvent(obj,evt,func)
{
if( /MSIE/.test(navigator.userAgent) ){/* IE */
  obj.attachEvent(evt , func);
} else {
  evt=evt.replace('on','');
  obj.addEventListener(evt , func, false)
}
}

function removeEvent(obj,evt,func){

if( /MSIE/.test(navigator.userAgent) ){/* IE */
 obj.detachEvent(evt , func);
}else{
 evt=evt.replace('on',');
 obj.removeEventListener(evt , func, false)
}
}

attachEvent시 값을 전달
-----------------------------------
obj.attachEvent("onclick",  new  Function("your_function('"  +  변수  +  "')")); 
혹은
obj.attachEvent("onclick",  new  Function("your_function('동적값')"));
동적값은 event.srcElement.tagName 등등

모든 브라우저가 지원하는 attachEvent
-----------------------------------
function addEvent(object, event ,listener)
{
    if (object.addEventListener){
        object.addEventListener(event, listener, false);
    } else if (object.attachEvent){
        object.attachEvent('on' + event, listener);
    }
}

Posted by 케사