jQueryの - コードがインスタンス化それぞれの新しいDOMオブジェクトに対して実行させます
-
20-08-2019 - |
質問
これはjQueryのでは可能であるならば、私は思ったんだけど。
私は、ユーザーのアクションに応じて、その場でDOMオブジェクトを作成し、いくつかのJavaScriptコードを持っています。コンテナは、常に同じ「クラス」属性を持つ
- これらのDOMオブジェクトの中には、特定の構造です。私は何をしたいのは、クラス「X」を持つDOMオブジェクトの新しいインスタンスが作成されるたびに、私は、Javascriptのコードの同じ部分を実行したいです。このコードは、DOMオブジェクトに「onclickの」イベントを追加します。
残念ながら、私はちょうどそれがdocument.Ready()が実行した後も長い間、その場で作成されていると結合するオブジェクト以来、document.Ready()内のonclickを割り当てコードを置くことはできません。
jQueryのは、それがその場で生成されます場合でも、あなたは自動的にDOMオブジェクトの型にバインドされる永続的なバインドを設定してみていますか?
解決
これは、「ライブ」、「デリゲート」によって、あるいは時々「バインド」をカバーするために使用されます。これらは現在、「オン」に置き換えられ、ここで説明したように、いくつかの注意点がありますが: JavaScriptイベントバインディング永続
他のヒント
私は驚くべきことに、右jQueryのドキュメントでは、自分の質問への答えを見つけたと思います。
http://docs.jquery.com/Events/live#typefnする
live( type, fn )
jQueryの1.3で追加されました:現在のすべてのために(クリックなど)イベントにハンドラをバインド - と未来 - マッチした要素。また、カスタムイベントをバインドすることができます。
あなたは LiveQuery の?
と呼ばれるjQueryプラグインを見たことがLiveQueryのドキュメントページから:
たとえば、あなたが使用することができます クリックイベントをバインドするために、次のコード すべてのタグ、でも任意のAタグをあなたに AJAXを経由して追加することができます。
$('a')
> .livequery('click', function(event) {
> alert('clicked');
> return false;
> });
あなたに新しいAタグを追加したら、 文書、ライブクエリを結合します イベントをクリックして、他には何もありません それが呼び出されるか、実行する必要があります。
livequery
は不可能なjQueryのコア内(おそらくいくつかのプラグインを参照する他の回答で実現しましたように)...これは非常に単純な作業になる場合があります>
それらをサポートするブラウザ用 - 'DOMNodeInserted' - DOMレベル2イベント使用します:
をのhttp:// WWW。 w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationeventsする