ajaxStart()“$未定义”

时间:2011-05-10 09:27:39

标签: jquery

<script src="js/jquery/jquery-1.6.js" type="text/javascript"></script>

如何设置ajaxStart ??

我得到“$ .ajaxStart不是函数”

function Loader(){
    this.loader = null;

    this.cnstr = function(){
        if(!this.loader){
            this.loader = DOM.div(document.body);
            with(this.loader){
                className = 'loader';
                innerHTML = 'loader';
                style.display = 'none';
            }

            elm_position_center(this.loader);
            $(this.loader).fadeIn(1000);
        }
    };

    this.dstr = function(){
        if(this.loader){
            DOM.rmv(this.loader);
        }
    };
}
var Loader = new Loader();

$.ajaxStart(function(){
    Loader.cnstr();
});

$.ajaxStop(function(){
    Loader.dstr();
});

编辑:

$ .ajaxStart不是函数

window.onload = function(){
    $.ajaxStart(function(){
        Loader.cnstr();
    });

    $.ajaxStop(function(){
        Loader.dstr();
    });
};

5 个答案:

答案 0 :(得分:9)

这有效..

$(document).ajaxStart();

答案 1 :(得分:1)

您的jquery文件可能已丢失或您未正确加载

答案 2 :(得分:0)

您需要确保加载jQuery。尝试将此添加到您的文档中:

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.0/jquery.min.js"></script>

答案 3 :(得分:0)

试试这个:

$("#loadingAnimation").bind({
   ajaxStart: function(){ $(this).show(); },
   ajaxStop: function() { $(this).hide(); }
});

基本上将您的loadingAnimationElement绑定到全局触发的ajaxStart和ajaxStop事件。只有在您打算出现时才显示。

当jQuery没有执行任何Ajax请求并启动新请求时,它会触发ajaxStart事件。如果其他请求在第一个请求结束之前开始,则这些新请求不会导致新的ajaxStart事件。当最后一个挂起的Ajax请求完成且jQuery不再执行任何网络活动时,将触发ajaxStop事件。

//感谢Kevin Brown提醒我解释这个例子。

答案 4 :(得分:0)

自jQuery 3.5.0之类的别名ajaxStart被弃用以来。

我们还将AJAX事件别名放在列表中,可以用.on('ajaxStart', …)等替换。 jQuery Migrate会警告这些现在不推荐使用的方法,但是它们会一直存在到jQuery 4.0。

http://blog.jquery.com/2020/04/10/jquery-3-5-0-released/