3
Chrome/Firefox에서 사용자 정의 속성을 하나의 핸들러에있는 이벤트 객체에 첨부 할 수 있으며 이벤트 처리가 위로 올라가더라도 동일한 이벤트에 대해 다른 핸들러에서 읽을 수 있습니다.자바 스크립트에서 버블 링 된 이벤트 객체에 속성 추가하기
IE에서 동일한 작업을 수행 할 수 없습니다. 이벤트가 버블 링되는 동안 내 사용자 정의 속성이 손실됩니다. 해결 방법이나 해결 방법이 있는지 알고 계십니까? 내 테스트 당신이 (IE8 테스트) IE에서 이벤트 객체에 속성을 추가 할 수에 따라
<div id="div1">
<input type="button" value="Foo" id="button1">
</div>
<script>
function attach(el, event, fn) {
if (el.addEventListener) {
el.addEventListener(event, fn);
} else if (el.attachEvent) {
el.attachEvent('on'+event, fn);
}
}
attach(document.getElementById("button1"), 'click', function (event) {
event.abc = "done";
return true;
});
attach(document.getElementById("div1"), 'click', function (event) {
alert(event.abc);
return true;
});
</script>
당신은 IE의'event' 객체에 접근조차하지 않습니다. IE는 이벤트 핸들러로 전달하지 않고, 단지'window.event'를 통해 사용할 수 있습니다. 이것을 먼저 시도하십시오. –
@Felix 나는 window.event를 시도했지만 아무 소용이 없습니다. 이벤트 객체가 이벤트 핸들러로 전달된다고 확신합니다. – mgamer
IE9 이전의 IE에는 없습니다. –