#jquery
#jquery
Вопрос:
я видел, что ajaxStart / ajaxStop всегда используется против a DIV
. Рассмотрим следующее:
$("#lbl_ajaxInProgress").ajaxStart(function() {
// update labels
$(this).text('Yes');
});
$("#lbl_ajaxInProgress").ajaxStop(function() {
// update labels
$(this).text('No');
});
Зачем нам нужно привязывать ajaxstart / stop к a div
?
разве мы не можем использовать как
$ajaxStart(function() {
// update labels
$(this).text('Yes');
});
$ajaxStop(function() {
// update labels
$(this).text('No');
});
Когда будет выполнен ajax-запрос, будет вызвана функция ajaxStart, и ajaxStop будет вызван после завершения ajax-запроса. Пожалуйста, уточните это требование.
после изменения бита теперь здесь работает рабочая версия
$("#imgHolder").ajaxStart(function () {
$(document).ajaxStart(function () {
$('div#content').block({
message: '<table><tr><td><img src="../images/ajax-loader.gif" border="0"/></td><td><h3>Processing...</h3></td></tr><table>',
css: { border: '1px solid #a00' }
});
$('#imgHolder').empty();
$("#btnPrint").hide();
});
$("#imgHolder").ajaxStop(function () {
$(document).ajaxStop(function () {
$("#btnPrint").show();
$('div#content').unblock();
});
Комментарии:
1. вы можете использовать
beforeSend
иcomplete
в параметрах jQuery.ajax
Ответ №1:
Может быть, глупый вопрос, но почему вы используете ajaxStart
и ajaxStop
когда вы можете выполнить запуск прямо перед вашим .ajax(
вызовом и остановку, когда функция завершается успешно или завершается неудачно (успех, ошибка)
/* ajaxStart stuff here */
$('div#content').block({
message: '<table><tr><td><img src="../images/ajax-loader.gif" border="0"/></td><td><h3>Processing...</h3></td></tr><table>',
css: { border: '1px solid #a00' }
});
$('#imgHolder').empty();
$("#btnPrint").hide();
/* end start */
$.ajax({
type: "POST",
url: "myAjax.asmx/Sample",
data: dataString,
cache: false,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
$("#btnPrint").show();
$('div#content').unblock();
},
error:function(xhr,err){
$('div#content').fadeOut();
alert("readyState: " xhr.readyState "nstatus: " xhr.status);
alert("responseText: " xhr.responseText);
}
});
Тогда у вас нет <div>
требования.