私はより効率的に考えています。要素の表示をnone
に設定すると、javascriptは接続されているイベントをリッスンし続けますか、または表示が元に戻されるまで一時的に削除しますか?CSS/Javascript - 関連するイベントリスナーを一時的に削除しますか?
答えて
発生するイベントの種類によって異なります。さんはclick
イベントを使用してみましょう:まず本部に
$(function() {
// Let's attach an event.
$("#eventContainer").click(function() {
$("#eventAffected").html("I changed.");
});
// This will hide the container surely when you click.
$("#hide-container").click(function() {
$("#eventContainer").hide().css("display", "none");
});
// This will trigger the event on the element.
$("#trigger-event").click(function() {
$("#eventContainer").trigger("click");
});
});
* {font-family: 'Segoe UI'; margin: 5px;}
#eventContainer, #eventAffected {background-color: #ccf; text-align: center; padding: 5px;}
#eventAffected {background-color: #cfc;}
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<div id="eventContainer">Hello I am the Event Box</div>
<div id="eventAffected">Hello, I change when event triggered on the above.</div>
<button id="hide-container">Hide</button>
<button id="trigger-event">Trigger Click</button>
テストケース
- をクリックします。2番目のDiv変更、イベントがトリガされます。
- トリガークリックをクリックします。2番目のDiv変更、イベントがトリガされます。
- [非表示とトリガー]をクリックします。2番目のDiv変更、イベントがトリガされます。
結論、DOM要素が画面内または画面外表示されているか否か
は、すべてのイベント及び動作が保存されます。 CSS表示のみが変更されます。他に何も、行動に関係するものは影響を受けません。
これはすべてのイベントに似ていますが、唯一のものはできません寸法またはボックスモデルを計算します。
これは、visibility: hidden
またはdisplay: none
の場合にイベントが保存されることを示しています。
この説明に感謝します。 Quentinの答えに、たとえイベントが削除されない場合でも、要素が表示されていないときにブラウザがテストを停止すると言っているのは間違いありませんか? – sookie
技術的にチェックされ、トリガーされます。しかし、あなたは見ることができません。私はクエンティンがどのようにそれを証明するのか分かりませんが、これは私の見解です。 ':)' –
私はいくつかの例を持っている[ここ](https://jsfiddle.net/ohad/2L46tego)。 display none要素に設定されたイベントがトリガーされたことがわかります –
いいえ、それはそれらを削除しませんが、要素とその子孫のすべてがレンダリングされていないため、ユーザーはそれらのいずれかでイベントをトリガするための方法はありませんので、ブラウザをテストすることはありません要素にイベントハンドラがあるかどうかを確認します。
- 1. Chromeはイベントリスナーを削除しますか?
- 2. イベントリスナーをいつ削除しますか?
- 3. 一時的にラベル/タグを削除し、
- 4. 一時的に削除するコードはありますか?
- 5. JavaScript:Class.prototype関数としてイベントリスナーを削除
- 6. onclick関数であるイベントリスナー/ onclickを削除します。
- 7. イベントリスナーを削除する
- 8. Nodejsイベントリスナーを削除する
- 9. 2つの「時間」列に一致しないエントリを削除すると同時に、関連する「値」エントリを削除します
- 10. イベントリスナーを削除
- 11. git masterブランチからコードを一時的に削除する
- 12. Gitブランチから機能を一時的に削除する
- 13. 同時に2つの関連するテーブルでLaravelを削除します
- 14. 削除前に関連するレコードを削除するpostgresql
- 15. Djangoはカスケード削除に関連する一般的な外部キーオブジェクト
- 16. sp_delete_jobも関連するジョブステップを削除しますか?
- 17. Emberでイベントリスナーを削除するには
- 18. javascriptでイベントリスナーを削除するには?
- 19. BackButtonActionイベントリスナーを削除するには?
- 20. SQL Server:一定時間後にレコードを自動的に削除しますか?
- 21. android.locationメソッドに関連する@Override注釈を削除します
- 22. 一時的にXCodeでVuforiaを無効/削除する方法
- 23. 一時的にscene2d内のアクターを削除する方法
- 24. JavaScript:そのリスナー内からイベントリスナーを削除しますか?
- 25. 関連するレコードを削除すると、元のファイルが削除されます.Railsでhas_many関連ゲッターを削除します。
- 26. 関数名を持たないイベントリスナーを削除する
- 27. イベントリスナーを削除し、ムービークリップを位置に移動します。
- 28. 24時間後に自分自身を削除する一時的なレコードを作成しますか?
- 29. OneToOneFieldで関連オブジェクトを削除する
- 30. beforeunloadのイベントリスナーを削除する
これはイベントリスナーを削除しませんが、コードからイベントをトリガーすることはできますが、ユーザーが要素を非表示にしてもイベントを呼び出すことはできません。 –
あなたが話しているイベントの種類によって異なります。 –
私自身のコードの点では、主にクリックイベントまたはマウスオーバーイベントです。 – sookie