Jquery Ajax Загрузка изображения
Я хотел бы реализовать загрузочное изображение для моего jquery ajax-кода (это когда обработка jquery все еще обрабатывается) ниже - мой код:
$.ajax({
type: "GET",
url: surl,
dataType: "jsonp",
cache : false,
jsonp : "onJSONPLoad",
jsonpCallback: "newarticlescallback",
crossDomain: "true",
success: function(response) {
alert("Success");
},
error: function (xhr, status) {
alert('Unknown error ' + status);
}
});
Как я могу реализовать загрузочное изображение в этом коде.
Благодаря
Ответы
Ответ 1
Попробуйте что-то вроде этого:
<div id="LoadingImage" style="display: none">
<img src="" />
</div>
<script>
function ajaxCall(){
$("#LoadingImage").show();
$.ajax({
type: "GET",
url: surl,
dataType: "jsonp",
cache : false,
jsonp : "onJSONPLoad",
jsonpCallback: "newarticlescallback",
crossDomain: "true",
success: function(response) {
$("#LoadingImage").hide();
alert("Success");
},
error: function (xhr, status) {
$("#LoadingImage").hide();
alert('Unknown error ' + status);
}
});
}
</script>
Ответ 2
Описание
Вы должны сделать это, используя jQuery.ajaxStart
и jQuery.ajaxStop
.
- Создайте div с вашим изображением
- Сделать это видимым в
jQuery.ajaxStart
- Скрыть его в
jQuery.ajaxStop
Пример
<div id="loading" style="display:none">Your Image</div>
<script src="../../Scripts/jquery-1.5.1.min.js" type="text/javascript"></script>
<script>
$(function () {
var loading = $("#loading");
$(document).ajaxStart(function () {
loading.show();
});
$(document).ajaxStop(function () {
loading.hide();
});
$("#startAjaxRequest").click(function () {
$.ajax({
url: "http://www.google.com",
// ...
});
});
});
</script>
<button id="startAjaxRequest">Start</button>
Дополнительная информация
Ответ 3
Немного поздно, но если вы не хотите использовать div специально, я обычно делаю это так...
var ajax_image = "<img src='/images/Loading.gif' alt='Loading...' />";
$('#ReplaceDiv').html(ajax_image);
ReplaceDiv - это div, который также вставляет Ajax. Поэтому, когда он появляется, изображение заменяется.
Ответ 4
Обратите внимание, что:
ajaxStart/ajaxStop не работает для запроса ajax jsonp (запрос ajax json в порядке)
Я использую jquery 1.7.2 при написании этого.
вот одна из ссылок, которую я нашел:
http://bugs.jquery.com/ticket/8338