3
Chrome/Firefoxでは、カスタムのプロパティを1つのハンドラ内のイベントオブジェクトにアタッチし、イベントハンドリングがバブリングされても同じイベントに対して別のハンドラで読み込むことができます。Javascriptでバブリングされたイベントオブジェクトにプロパティをアタッチする
私は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ではありません。 –