問題タブ [event-delegation]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - クリックイベント後にjQuery .delegate()または.live()をバブリングするイベント
単純なコードの実行であると思われるものを実現するために、非常に多くのさまざまな可能性を試しました。経由でサーバーから DOM オブジェクトをロードしています.load()
。ロードされた項目の 1 つは、日付を含む入力テキスト ボックスです。入力ボックスをクリックしたときに jdpicker (プラグイン datepicker) をロードしたい。.live()
andの動作により、or.delegate()
をそれぞれ使用しても、ポップアップの日付ピッカーが正常に動作しません。ウィンドウがポップアップし、ウィンドウ内の 1 つのオブジェクトをクリックしてすぐに閉じます (ウィンドウを閉じずに月、年をナビゲートすることはできません)、またはウィンドウがポップアップし、その後のすべてのクリックでコードが再実行され、複数のインスタンスが生成されます。日付ピッカーの。.die()
.undelegate()
.live()
、.delegate()
、のさまざまな組み合わせを試しましたが.one()
、うまくいきませんでした。メイン ウィンドウで日付ピッカーをテストしたところ、正常に動作することがわかりました。コードを投稿することはできますが、私が行った 10 の異なる試みのどれが最良の例になるかはわかりません。私の最新の試みを示すことができます。
誰かがこれに適した例を持っていますか? ありがとう!
アップデート
コードを次のように編集しました。
これは完全な答えになることにかかっています。日付ピッカーは複数のインスタンスを呼び出さなくなりましたが、これは良いことですが、そのコントロール (月、年の選択) をナビゲートすることはできません。次の月をクリックすると、ロードして閉じます。次にクリックすると、翌月に再び開きます。したがって、それは機能しますが、確かに望ましくありません。助言がありますか?
jquery - イベントキャプチャフェーズ中のjQueryハンドラーのバインド(イベントバブリングではない)
quirksmodeで提案されているのと同様の方法で、blur/focusイベントにイベント委任を実装しようとしています。TFAで説明されているように、ぼかしイベントとフォーカスイベントはバブルしないため、バブリングフェーズではイベント委任を使用できませんが、キャプチャフェーズでは取得できます(JavaScriptイベントは奇妙です)。
とにかく、私が見る限り、jQueryイベントはすべてバブリングフェーズに適用されます。少なくとも、私がいつも使用しているのはここです。jQueryドキュメントでは、この方法に関する情報を確認できません。デフォルトでは、$('#foo')。blur(blurHandler)などを使用しても情報が取得されないようです。
一貫性を保つために、jQueryの使用に固執したいと思います。これを行う方法はありますか?
jquery - jqueryは、イベントの完了後にクリックイベントの委任を解除します
一部のAJAXコンテンツをページにアニメーション化するクリックイベントがあります。
このコンテンツが公開され、ユーザーがプロセスをアクティブ化したのと同じリンクをクリックしたら、プロセスを逆にして、現在開いているフライアウトコンテンツを閉じます。
現在開いているフライアウトは、「閉じる」リンクをクリックするか、シーケンス内の別のフライアウトリンクをクリックすることで閉じられます。ユーザーが現在のフライアウトリンクをクリックした場合、現在のフライアウトを閉じたいと思います。
javascript - イベント委任が価値あるものになるには、いくつの要素が必要ですか?
jQuery のパフォーマンスに関するスタック オーバーフローの別の質問を読んで、要素を個別にバインドするのではなく、イベント委任を使用する価値があるポイントについて考え始めました。主にjQueryを考えていましたが、おそらくJavascript全般に当てはまるのではないでしょうか。
イベント委任には、次の 2 つの主な目的があります。
- DOM にまだ作成/挿入されていない要素に対してハンドラーが機能できるようにします。
- 複数の兄弟要素ではなく、共通の祖先要素に 1 つの関数をバインドする
私の質問は、これらの 2 番目についてです。一般的な答えはおそらく「正確な状況による」でしょうが、これをテストするための経験則またはベンチマークの方法があるのだろうか.
問題は、イベント委譲のパフォーマンス上の利点がパフォーマンス コストを上回るには、いくつの要素が必要かということです。
iphone - Iphone代表団
こんにちは私はキーボードを上げるために以下を使用しています、私はそれを使用することもできる多くのビューコントローラを持っていますが、それを委任する試みは失敗しました。これをすべてのViewControllerに挿入したくはありません。何かアイデアがあればとてもありがたいです
}-(void)viewWillDisappear:(BOOL)animated {
}
jquery - jQuery1.3.2を使用したイベントの委任
現在、jQuery 1.3.2の使用に追われており、イベントの委任全般について理解し始めたばかりです。しかし、このコードで機能するイベント委任を取得できないようです。クラス「チャット」のulがあり、そのliの1つにカーソルを合わせると、新しいスパンが作成され、マウスがliを離れると、スライドして元に戻ります。
このコードは機能しますが、イベント委任を使用したいと思います。
誰かが同じ結果を達成する方法を教えてもらえますが、イベントの委任がありますか?ありがとう。
jquery-selectors - delegate() と live() メソッドの背後にあるものは何ですか?
ページ内の現在および将来の要素を操作できるようにする jQuery のメソッドの背後にあるものは何delegate()
ですか?live()
java - イベント処理のアイデア
JPanels から拡張された 2 つのクラスがあり、両方のパネルには、クリックすると共通のアクティビティを実行するボタンがあります。これを達成するための最良の方法は何ですか?イベント代表団はここに入りますか?コントロールを別のクラスのハンドラーに渡すようなものですか? (私が間違っていなければ、委任とは何かを想定しています)(委任が適切である場合は、良い学習リソースを提供してください)。また、共通の静的メソッドを持つことも考えました。各クラス actionPerformed がそれを呼び出す可能性があります!! それとも他に良い方法はありますか?
android - Android リスト タップ イベントの委任
データベースを使用してデータを表示するリストがあります。ユーザーが各リスト項目で実行できる操作がいくつかあります。ユーザーが長押しを使用して可能な操作のリストを表示するコンテキスト メニューを実装する代わりに、ユーザーがタップできるように各項目にボタンを追加したいと考えています。ボタンを押して操作してください。リストは潜在的に大きくなる可能性があり、各リスト項目の各ボタンにリスナーをアタッチするのはやり過ぎなので、Javascript プログラマーがイベント バブリングで行うこと、つまり、単一のハンドラーをリスト全体のような最上位要素にアタッチし、クリックイベントがそこに泡立ちます。どうすればこれを行うことができますか?
javascript - difference between jQuery.live and jQuery.delegate
I have read some post about why do not use jQuery.live() and I want to check if I got it:)
When I call $("body").delegate('element','click', function);
Is it the same as $(element).live('click', function)
?
In case of normal behaviour..According to the post there are some stopPropagation and performance boons, but is the main difference that live bind everytime to body element, while delegate can bind to another one?