0

ユーザーが画面をクリックするたびに動的にdivを作成する(Javascript)ツールがあります。

_newDiv = document.createElement('div');

作成したら、それにイベントを_newDiv割り当てたいと思います。onmousedown

_newDiv.onmousedown = function(event) { onNewDivMouseDown(event); };

これはFirefoxでは完全に機能しますが、IE 8では機能しません。この問題を解決するために使用できるハックはありますか?

4

2 に答える 2

2

問題が解決しました!

動的に作成されたdivがprogid:DXImageTransformを使用して透過的にされたため、IEはそのdivのonmousedownイベントをキャプチャしなかったことがわかりました。挿入することで問題は解決しました

background-image:url(/none)

divのスタイルシートにあります。どういうわけか、存在しない画像を挿入しても動作するので、それを使用しました。

于 2011-09-11T12:01:14.580 に答える
0

IE9より前は、eventオブジェクトはハンドラーに渡されませんでした。代わりに、それはグローバル変数です。したがって、従来のイディオムは次のとおりです。

function handler(event) {
  event = event || window.event;
  // ...
}

だからあなたの場合:

_newDiv.onmousedown = function(event) {
    onNewDivMouseDown(event || window.event);
};
于 2011-09-10T14:23:44.377 に答える