3

だから私はhtmlAJAXリクエストを介して注入しています:

Ajaxレスポンス

  <div id="my-element">HTML from AJAX request</div>

問題は、idを持つ要素が#my-elementAJAXリクエストから入ってくることですが、イベントもバインドする必要があります。例えば:

 $(document).ready(function() {
    $("#my-element").click(function() {
        alert("hit");
    });
 });

明らかに、上記のイベントは発生しません。これは、ページの準備ができたときに、HTMLがAJAXリクエストからまだ挿入されていないためです。これを修正するための最良の解決策は何ですか?

ありがとう。

4

4 に答える 4

7

jQuery.on関数を使用してみてください:http: //api.jquery.com/on/

$(document).on('click', '#my-element', function () { ... });

そうすれば、動的に追加された要素でも機能します。

于 2012-09-01T04:33:13.293 に答える
0

AJAXリクエストを介したhtmlの挿入が完了した後にイベントを追加する
か、メソッド
を使用できますon

この例も参照してください

動的に作成された要素のイベントバインディング?

于 2012-09-01T04:33:03.603 に答える
0

メソッドを使用しonてライブにします。

$(function(){
    $("#my-element").on("click",function() {
        alert("hit");
    });
});
于 2012-09-01T04:35:37.047 に答える
-1

htmlをDOMに挿入した後、ajax呼び出しの成功コールバックでバインディングを実行します。

于 2012-09-01T04:32:58.300 に答える