2

ユーザーがライブ検索機能を実行できるプロジェクトに取り組んでいます。ライブ検索の結果が JQuery Ajax を介して表示される場合、ユーザーが表示された結果の 1 つをクリックして、ページの別の場所にそのクローンを作成できるようにする必要があります。私が見つけている問題は、これらの新しいライブ検索結果が最初のページの読み込み時に処理されないため、DOM に存在しない「ファントム コード」と見なすことです。JQuery の on() 関数と bind() 関数について調査しましたが、それらを自分のコンテキストに実装する方法がわかりません。

ここに私のJQueryがあります

$(".add").click(function() {
        $(this).parent("li").clone(true).appendTo(".doc_list:first");                       

});

そのスニペット (これ) では、ライブ検索結果を介して動的に作成される LI 要素 (親) 内に存在するボタンを参照します。その LI 要素をコピーする必要があります。

さらにコードが必要な場合は、お知らせください。

4

2 に答える 2

3

As your .add button added to DOM after page load ie. dynamically, so you need a delegate event handler (aka live).

$(".doc_list").on('click', '.add', function() {
    $(this).parent("li").clone(true).appendTo(".doc_list:first");
});

Here I user .doc_list as container, but if .doc_list also a dynamic element then replace it with some other static element that belong to DOM at page load.

于 2012-06-07T16:30:55.107 に答える
1
$("Static-container").on('click', '.add', function() {
        $(this).parent("li").clone(true).appendTo(".doc_list:first");                       
});

WhereStatic-containerは、動的に追加されたすべての要素を保持する最も近い要素へのセレクター.addです。

于 2012-06-07T16:32:58.840 に答える