2

ステータス:動作中

スムーズに実行 - クリックは機能します

Jクエリ

 $("document").ready(function(){

    $("#test").click(function(){
        alert("abc");
    });     
 });

CSS

.blue {
background-color:blue;
}

タグ本体

<body>
<div class="blue" id="test">Testing code</div>
</body>

ステータス:動作していません

ファイルとその中に div を追加することに成功しtestますが、クリックは機能しません

Jクエリ

 $("document").ready(function(){

    $.get("new.php", {
         // this math avoids IE from crashing
         nbRandom: Math.random() 
         },
         function(data){
         $("body").html(data);
         });

    $("#test").click(function(){
        alert("abc");
    });   
 });

CSS

.blue {
background-color:blue;
}

タグ本体

<body>
</body>

誰もそれを行う方法を知っていますか?

4

4 に答える 4

5

メソッドgetは非同期です。つまり、ajax リクエストがまだ実行されている間もストリームは続行されます。最善の解決策は、クリック ハンドラーをgetコールバックに配置することです。

$("document").ready(function(){

$.get("new.php", {
     // this math avoids IE from crashing
     nbRandom: Math.random() 
     },
     function(data){
       $("body").html(data);
       $("#test").click(function(){
         alert("abc");
       });   
     });


});
于 2012-12-28T08:11:03.503 に答える
4

要素またはドキュメント オブジェクトの静的な親の 1 つからイベントを委任する必要があります。

$(document).on("click", "#test", function(){
    alert("abc");
})
于 2012-12-28T08:13:30.510 に答える
1

delegateまたはon を使用する(推奨)

$(function() {
  $('body').on('click', '#test', function() { alert('abc'); });
  // or
  // $('body').delegate('#test', function() { alert('abc'); });
});
于 2012-12-28T08:22:49.487 に答える
0

問題は、withが追加さclickれる前に関数が呼び出されることです...div#test

divが追加された後にクリック関数を呼び出します..そのIDを取得します...そしてイベント

これを試して

$.get("new.php", {
       // this math avoids IE from crashing
       nbRandom: Math.random() 
     },
     function(data){
        $("body").html(data);
        $("#test").click(function(){
            alert("abc");
        });
     });

また

onセレクターを.. として使用する関数document(私は常にこれを使用することを好みます)

$(document).on("click", "#test", function(){
  alert("abc");
})
于 2012-12-28T08:12:10.910 に答える