2

$.get リクエストが送信されるまで、アンカー リンクの読み込みを遅らせるにはどうすればよいですか? 私は持っている

$("a.track").click(function() {
    $.get("track.php", { id: "page1.html" });
});

...しかし、リンクをクリックすると、上記のリクエストが完了する前に新しいページがロードされます(PHPページでの私の応答は記録されません)。を使用してリンクを停止するreturn false;と、$.get 要求は期待どおりに機能しますが、リンクが読み込まれません。

私がしたいのは、次のようなことです

$.get("track.php", { id: "page1.html" }, function() {
    return true;
});

...しかし、これが実行される前に新しいページが読み込まれるため、期待どおりに機能しません。

GET リクエストが送信された後にのみ、このリンクの読み込みが行われるようにするにはどうすればよいですか? リクエストから結果を返すことはあまり気にしません。新しいページが読み込まれる前に結果を送信したいだけです。

4

2 に答える 2

6

クリックハンドラーにコールバックを渡すことができます。これにより、成功するとページがリダイレクトされます。

$("a.track").click(function(event) {
  event.preventDefault(); // Ignore user's click
  var href = $(this).attr('href');
  $.get("track.php", { id: "page1.html" }, function(data){
    window.location = href; // Redirect on success
  });
});
于 2009-03-23T18:22:33.280 に答える
0
$("a.track").click(function() {
    var that = this;
    $.get("track.php", { id: "page1.html" }, function(){
        $(that).attr('onclick', '').click();
    });
});

またはそのようなもの。以前のクリックイベント処理attr('onclick'、'')は、それを実行する場合と実行しない場合があります。

于 2009-03-23T18:21:15.873 に答える