Я хочу прервать запрос через $.ajax()
, но я продолжаю получать Uncaught TypeError: Object 5 has no method 'abort'
. Число 5
меняется на 10
после еще одного нажатия, а затем, если вы нажмете еще несколько раз, он просто продолжает расти. Я использую следующий код:Uncaught TypeError: Object {number} не имеет метода 'abort'
var load_info = '';
$('body').on('click', '#moreinfo', function() {
load_info = setTimeout(function(){
$.ajax({
url:'file.php',
method:"GET",
success:function(s){ alert(s); },
error:function(e){ alert(e); }
})
},2000);
});
$('body').on('click', '#cancel', function() {
load_info.abort();
});
Demo at jsFiddle (довести до консоли браузера, чтобы увидеть ошибку)
Как я могу сделать эту функцию работать?
Спасибо :) Есть 'clearTimeout()' и 'прервать()' то же самое, но ' clearTimeout() 'просто отменяет' setTimeout() '? – Erik
@ErikEdgren: 'clearTimeout' и' abort' не связаны. 'clearTimout' очищает запланированный таймер. Если вы вызовете его до срабатывания таймера, функция, которую вы запланировали, не будет запущена. В этом случае это означает, что вы никогда не назовете '$ .ajax'. 'abort' предназначен для прерывания выполняемых XHR-запросов. –
Хорошо. Большое спасибо. Я приму свой ответ, как только смогу – Erik