关于ajaxStart / ajaxStop jquery

时间:2011-09-29 09:59:24

标签: jquery

我已经看到ajaxStart / ajaxStop总是用于DIV。请考虑以下事项:

$("#lbl_ajaxInProgress").ajaxStart(function() {
    // update labels
    $(this).text('Yes');
});

$("#lbl_ajaxInProgress").ajaxStop(function() {
    // update labels
    $(this).text('No');
});

为什么我们需要将ajaxstart / stop绑定到div? 我们不能像

一样使用
$ajaxStart(function() {
    // update labels
    $(this).text('Yes');
});

$ajaxStop(function() {
    // update labels
    $(this).text('No');
});

当发出ajax请求时,将调用ajaxStart函数,并在ajax请求完成时调用ajaxStop。请详细说明这一要求。


现在改变位后,它正在这里工作的版本

$("#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 个答案:

答案 0 :(得分:0)

也许是一个愚蠢的问题,但是为什么在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>要求。