0

DOM で一致するオブジェクトが作成されたときに、イベントを特定のクラスと ID にバインドしたいと考えています。

ASP UpdatePanel に jQuery コードがあるため、これを行っています。これにより、部分的なポストバックで DOM が再ロードされます。live() でイベントをリセットしましたが、要素が作成されたらすぐに 2 行の初期化関数を呼び出す必要があります。

これを live() やその他の jQuery 関数にアタッチする方法はありますか、それとも自分でコードを書く必要がありますか?

ありがとう、エド

4

2 に答える 2

1

UpdatePanel を使用している場合は、次の関数を記述できます。

function pageLoad() { } //Called by ASP.Net javascript code

これは、ページが最初に読み込まれるたびに呼び出され、UpdatePanel コンテンツを読み込むときに呼び出されます。または、次のようにして、UpdatePanel が戻ってきたときに実行する任意の関数をフックすることもできます。

$(document).ready(function() {
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(myFunction);
});
function myFunction() {
 //Do stuff with elements
}

これは、最初のページの読み込みでは実行されず、UpdatePanel の読み込みでのみ実行されることに注意してください。myFunction();ロード時にも実行する必要がある場合は、in document.readyへの呼び出しを追加するだけです。

于 2010-03-09T11:11:42.797 に答える
1

ノードが DOM に追加されるDOMNodeInsertedたびに、イベントが発生します。ドキュメント本体でこのイベントをリッスンし、イベントが発生するたびに、挿入されたノードで探しているクラスと ID セレクターを検索します。

$(document.body).bind("DOMNodeInserted", function(event) {
    // element is the newly inserted node
    var element = $(event.target);
    // if this element is of interest
    if($("<selector>", element).length > 0) {
        // run the initialization code here..
    }
}

DOM ミューテーション イベントの詳細については、こちらをご覧ください。

于 2010-03-09T11:27:03.207 に答える