1

内部リンクがクリックされるたびに Web ページが完全にリロードされるのを避けるために、jQuery と AJAX を使用しています。

$(".ajax").click(function(e){
    e.preventDefault(); // do not follow link
    var requestPage = "content.php?" + jQuery(this).attr('href').split("?")[1];
    $.get(requestPage, function(data){
        $("#content").html(data);
    });
});

これらのリンクの一部は、次のように content.php によって生成されます。

<li><a class="ajax" href="home.php?x=1&y=A" title="Link A">Link A</a></li>
<li><a class="ajax" href="home.php?x=1&y=B" title="Link B">Link B</a></li>
<li><a class="ajax" href="home.php?x=1&y=C" title="Link B">Link C</a></li>

今私の問題は、(F5 を使用して) ページを更新した後、最初は正常に動作し、2 回目はクリック機能がまったく呼び出されないことです。

home.php のいくつかの同様のリンク (再生成されないため) は、このクリック機能も使用しますが、問題はありません。

誰でも助けてもらえますか?

4

1 に答える 1

1

動的にロードする dom にclick()などのイベントをアタッチすることはできません。したがって、それはon()イベント委譲である必要があります。古いバージョンの jQuery では、 on( )の代わりにlive()またはdelegate()を使用できます。

$(document).on("click",".ajax",function(e){
      e.preventDefault(); // do not follow link
    var requestPage = "content.php?" + jQuery(this).attr('href').split("?")[1];
    $.get(requestPage, function(data){
        $("#content").html(data);
    });
});
于 2013-07-07T13:05:34.593 に答える