質問: $(this).attr("href"); //load the value of href via $.ajax to some div //yadda yadda }); ``` 最初のシナリオは次のとおりです。比較的少量のHTMLがデータベースからロードされ、アクションがアタッチされています(上記のコードスニペットを実装しています)。さて、私は同じ形式のHTMLの別のチャンクを読み込むこのスクリプトを持っています。新しく読み込まれたHTMLは、同じアクションを受け取る必要があります。 問題の根底には次のようなものがあります。これらのアクションを、以前にこれらのアクションをアタッチしたオブジェクト/要素にアタッチする必要はありません。新しいHTMLのチャンクがロードされるにつれて、このアクションの追加が遅くなります。アクションは、以前にロードされたHTMLにアタッチされています(これらのアクションがあることを覚えておいてください)。アクションは、新しくロードされたHTMLチャンクに**のみ**接続する必要があります。 FFがフリーズし、スクリプト処理を続行するかどうか尋ねることがあります。 Ergo、質問:前にアクションを付けた要素にアクションの添付をバイパスする方法がありますか? *百万の皆さん、ありがとうございます。
回答: はい、コンテキストを取り込む関数、つまり検索するセレクタや要素に、アクションバインディングコードをリファクタリングします。次に、セレクタをすべて変更して、jQuery $関数の2番目のパラメータとしてコンテキストに渡します。 次に、指定された新しいコンテナ要素に対してこの関数を呼び出すことができます。 例えば。 ``` function bindActions(context) { context = context || $('body');//use whole page if no context specified $("textarea.with-counter", context).keydown(function(){ var text_len = $(this).val().length; //manipulate the span/etc that has the counter }); $("a.ajax_link", context).click(function(){ var loc = $(this).attr("href"); //load the value of href via $.ajax to some div //yadda yadda }); } // add new content to a div with id of "new3", for example, then: bindActions('#new3'); ```