1

問題を特定するために api.jquery.com とスクリプトで 1 時間を無駄にしましたが、まだできません。

これが私のscript.jsです

// DOM ready

$(function(){

    // gets categories from server
    $.post("category.php", function(data) {
        $("#category ul").html(data);
    });

    // tests click event
    $("a").click(function(evt) {
        alert("Handler for .click() called.");
        evt.preventDefault();
    });

});

index.php には 4 つのアンカー タグがあり、最初の 3 つはサーバーからロードされます (スクリプトで確認できます)。最後の 1 つはプリロード (静的) (サーバーからロードされていません) です。問題は、スクリプトで確認できるように、jQuery セレクターですべてのアンカー要素を選択したことですが、私のイベントは、事前に読み込まれた最後のアンカー タグでのみ機能します。なにが問題ですか ?イベントが最初の 3 つのアンカー タグで機能しないのはなぜですか?

4

3 に答える 3

4

使ってみてくださいon

   $('body').on('click', 'a', function(evt) {
     alert("Handler for .click() called.");
     evt.preventDefault();
   });
于 2012-11-09T07:43:14.977 に答える
3

試す:

$(document).on('click', 'a', function (){
    //do something
});

これにより、ハンドラーが現在存在するすべてのアンカータグと、将来動的に追加されるすべてのアンカータグにバインドされます。

于 2012-11-09T07:43:24.863 に答える
1
$(function(){

// gets categories from server
$.post("category.php", function(data) {
   $("#category ul").html(data);

// tests click event
   $("a").click(function(evt) {
      alert("Handler for .click() called.");
      evt.preventDefault();
  });
 });
});

ajax postリクエストの準備ができるまで待つ必要があります!

ご挨拶!

于 2012-11-09T07:43:26.260 に答える