1

側面に小さなボタンが付いたテーブルがあり、ユーザーのマウスが置かれている行に自動的に移動します。マウスが移動すると、insertBefore()関数を使用して、ボタンを含むスパン(およびその中のすべての要素)が移動します。ただし、ボタンには(attachEvent()を使用して)onclickイベントハンドラーが登録されており、ボタンを移動すると、onclickイベントは発生しなくなります。

これは既知の問題ですか?

4

1 に答える 1

1

insertBefore、およびその他のDOM操作メソッドを使用appendChildすると、すべてのブラウザーでイベントハンドラーが保持されるため、問題はありません。

説明されている問題を再現しようとしましたが、IE8でクリックするとバグが表示されます。ボタンは押された状態のままで、クリックハンドラーは起動しません。そのようなバグはこれまで見たことがありません。

この問題を修正するmouseenterには、の代わりにイベントを使用できますmouseover。(このイベントはIEに組み込まれていますが、すべての最新のブラウザーに組み込まれているわけではありません。このクロスブラウザーを作成するには、jQueryを使用できますmouseenter)。

JSFiddleリンク(IE8で見る):バグ修正されたバージョン

于 2012-11-18T18:15:59.197 に答える