Что касается ajaxStart / ajaxStop jquery

#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> требования.