0

以下のスクリプトは、$.post() 応答にエラーがある場合に URL を生成します。生成された URL に関数をアタッチできるように .on() を使用しようとしていますが、機能しません。URL を ($.post なしで) DOM に追加すると、それは魅力のように機能します。URL が $.post() 内で生成された場合は機能したくありません。どうすればそれを機能させることができるかについてのアイデアや解決策はありますか?

// Do the database check:
$.post("test.php",{searchFor : search},function(data) {
       if(data.response == true) {
           // DO SOME STUFF
       } else if(data.response == false && data.error == "noDoc") {
           $("#resultsTable").html("<tr><td colspan='6'><p><strong>No user found, <a href='#' class='addDoctor'>Click here</a> to add a doctor.</strong></p></tr>");
       } else {
           $("#resultsTable").html("<tr><td colspan='6'><p><strong>"+data.error+"</strong></p></tr>");
       }
   });
});

$(".addDoctor").on("click",function() {
   alert("test");
    return false;
});
4

2 に答える 2

2

$('.test')コード内で、DOM 内の「test」という名前のクラスを持つすべての要素を検索し、それらにクリック リスナーを追加します。これは、への呼び出しが実行されているときに検出できる要素にのみ影響します.on(つまり、実際のクリックが発生したときではありません)。

の呼び出しにテスト クラスを使用して要素を追加する場合は、すべての要素の親となり、決して破棄されない要素.onを呼び出す必要があります。.on.test

$(document).on('click', '.test', function() {
    alert('test');
});

最適なパフォーマンスを得るには、可能な限り最も近い親を選択して、適格な要素を探すために DOM のより小さな部分を検索する必要があります。hereの使用はdocument必ずしも理想的ではありませんが、DOM を知らなくても、私が推測できる最も近いものです。

于 2012-01-16T11:30:06.667 に答える
0

あなたは次のようなものが欲しいかもしれません:


$(".addDoctor").on("click", function(event){
    alert("test");
});

于 2012-01-16T11:28:41.857 に答える