2

動的ページネーションを使用しています。

別のイベントを開始する前にsuccess、jQuery でイベントをキャンセルする必要があります。ajax

に等しい変数を設定しましたが、そうする前に、何があって$.ajax()も呼び出します。abort

問題は、successまだ発火することです。

Ajaxの答え: xmlHttpRequest.abort(); の実行後に jQuery が成功イベントを呼び出さないようにする方法 間違っているか、少なくとも私にとってはうまくいきませabortajax

success別の変数が始まろうとしている場合に、ajax変数の が起動しないようにしたいだけです。

コードスニペット:

if(updatePageAJAX){
    updatePageAJAX.abort();
}

updatePageAJAX = $.ajax({
});

必要に応じて詳細を提供できますが、updatePageAJAX機能します。うまくいくかどうかはわかりませんでしabortた。を入れて、alert起動ifするかどうかを確認しました。します。

abortを設定した直後に置くupdatePageAJAX = $.ajaxと、何も起こりません。

4

1 に答える 1

3

xhr オブジェクトを変数に保存して、成功のコールバックが正しい xhr オブジェクトであるかどうかを確認できるようにしましたか? 例えば:

$(function() {
    var xhr = null;

    $('.link').click(function() {
        var page = $(this).text();
        if(xhr != null) {
            xhr.abort();
        }
        xhr = $.ajax({
            type: 'GET',
            url: 'index.php',
            data: 'js=true&page=' + page,
            success: function(data, responseCode, jqxhr) {
                if(xhr == jqxhr) {
                    $('#page').text(data);
                    xhr = null;
                }
            }
        });
    });
});

この方法では、これが正しい要求でない場合、成功のコールバックは実行されません。

于 2012-12-28T17:36:11.610 に答える