1

これがJQueryで可能かどうか疑問に思っています。

ユーザーのアクションに応じて、オンザフライで DOM オブジェクトを作成する Javascript コードがあります。これらの DOM オブジェクトの一部は特定の構造にあります。コンテナは常に同じ「クラス」属性を持ちます。

私がやりたいことは、クラス "X" を持つ DOM オブジェクトの新しいインスタンスが作成されるたびに、同じ Javascript コードを実行することです。そのコードは、その DOM オブジェクトに「onclick」イベントを追加します。

残念ながら、onclick を割り当てるコードを document.Ready() に配置することはできません。これは、onclick がバインドされるオブジェクトが、document.Ready() の実行後ずっとその場で作成されるためです。

JQuery では、オンザフライで生成された場合でも、DOM オブジェクトの型に自動的にバインドされる永続バインディングを設定できますか?

4

4 に答える 4

8

私自身の質問に対する答えは、驚くべきことに JQuery のドキュメントの中にあると思います。

http://docs.jquery.com/Events/live#typefn

live( type, fn )

jQuery 1.3 で追加: 現在および将来のすべての一致する要素のイベント (クリックなど) にハンドラーをバインドします。カスタム イベントをバインドすることもできます。

于 2009-01-27T06:06:59.240 に答える
1

LiveQueryという jQuery プラグインを見たことがありますか?

LiveQuery のドキュメント ページから:

たとえば、次のコードを使用して、クリック イベントをすべての A タグにバインドできます。

$('a') 
>     .livequery('click', function(event) { 
>         alert('clicked'); 
>         return false; 
>     });

ドキュメントに新しい A タグを追加すると、Live Query によってクリック イベントがバインドされるため、他に呼び出しや実行が必要なものはありません。

于 2009-01-27T06:03:42.057 に答える
0

これは、'live'、'delegate'、または場合によっては 'bind' によってカバーされていました。これらは現在「on」に置き換えられていますが、ここで説明するようにいくつかの注意事項があります: Javascript イベント バインディングの永続性

于 2013-11-22T05:16:43.740 に答える
0

jQueryコアでは不可能です(おそらく、いくつかのプラグインを参照する他の回答で気付いたように)...次のようなもののすべての機能を必ずしも必要としない場合、これは非常に単純なタスクになる可能性がありますlivequery

それらをサポートするブラウザーの場合 - DOM レベル 2 イベント - 'DOMNodeInserted' を使用します。

http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationevents

于 2011-09-06T03:29:56.837 に答える