2015-05-13 2 views
2

Я застрял в создании простой функции загрузки для запроса AJAX. AJAX по-прежнему для меня новичок, поэтому я уверен, что просто делаю что-то немое!ajaxComplete не стрелял, чтобы остановить скрипт

ajaxStart запускает загрузку spinner.gif, но ajaxComplete не срабатывает, и gif продолжает вращаться даже после того, как результаты второй страницы загрузились после задержки 1 секунды. JQuery загружен, и загрузка ajax на второй странице отлично работает - это просто прекращает загрузку gif из игры после завершения функции загрузки! Какие-нибудь идеи? Благодаря!

<script> 
$(document).ready(function() { 

$(document).ajaxStart(function(load_a){ 
    $("#wait_a").css("display", "block"); 
}); 


$(document).ajaxComplete(function(load_a){ 
    $("#wait_a").css("display", "none"); 
}); 


var load_a = function() { 
    setTimeout(function(){ 
     $('#ajax_content_a').load('http://localhost/a.php');},1000); 
     alert(exception); 
} 


load_a(); 


}); 
</script> 

<div id="ajax_content_a">Loading...</div> 
<div id="wait_a" style="display:none;width:120px;height:120px;border:0px;position:absolute;top:50%;left:50%;padding:2px;"><img src='http://localhost/loading_spinner.gif' width="120" height="120" /></div> 
+0

вы уверены, что вы должны обернуть 'ajaxStart()' и 'ajaxComplete' в' $ (document) .ready() '? –

+0

ваш пример работает отлично .. вот jsfiddle http://jsfiddle.net/7q94fuzw/ –

ответ

0

Хотя это не решает проблему (ну, может на самом деле. Но это не решает корень проблемы), то очень вероятно, что причина ajaxComplete никогда не попал, потому что что-то не удается, прежде что. Чтобы убедиться, добавьте нижеприведенный фрагмент:

$(document).ajaxError(function(event, jqxhr, settings, thrownError) { 
    console.log(event) 
    console.log(jqxhr) 
    console.log(settings) 
    console.log(thrownError) 
    alert('Ouch, ajax failed: ' + thrownError); 
    $("#wait_a").css("display", "none"); 
}); 

Осмотрите консоль для подробного сообщения об ошибке.

ajaxComplete обычно следует вызывать после ошибки, но не если код останавливается из-за ошибки.

+0

Удивительно, спасибо! В скрипте на странице, загруженной ajax, была ошибка, которую я не заметил. –

Смежные вопросы