[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);
}
}
이올린에 북마크하기



