2

嗨,我有这段代码:

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

    $(function(){
        $('#invite').on('click',function(){
            if(!$('#invite').hasClass('disabled') ){
                invite($("#email").val());
            }
        });
        $('#email').on('keyup',function(e){
            if(e.which == 13 && !$('#invite').hasClass('disabled') ){
                invite($("#email").val());
            }
        });


    });
    function loading(){

        window.loading = setInterval(function(){
        $(".logo img").fadeTo(500,0.1).fadeTo(550,1);
    },1600); 

    }
    function unloading(){
      $('.logo img').fadeTo(0,1);
      clearTimeout(window.loading);
    }
    function invite(_email){
        $.ajax({
            type:'POST',
            url:_config_base_url+'/invite/get_invite',
            data:{email:_email},
            dataType:'json',
            error:function(){
                unloading();
                $("#invite").removeClass('disabled');
               notify("Sorry an error occured, please try again later",2000);
                $("input").focusout();
            },
            beforeSend:function(){
                loading();
                notify_destroy();
                $("#invite").addClass('disabled');
                $("input").focusout();
            },
            success:function(json){
                unloading();
                $('body').trigger('focus');
                $("#invite").removeClass('disabled');

                if(json.error == 'yes'){

                    notify(json.error_message,false,false);
                }else{
                    $("#email").val("");
                    notify(json.confirm_message,false,'notify-info');
                }

                $("input").focusout();
            }

        });
    }
    </script>

当我第一次启动 ajax 请求时,一切都很完美。

但是,当我尝试重新启动请求时,它总是返回:“错误:加载不是函数”并且涉及的代码行是这个:

 beforeSend:function(){
                loading();

我不知道那里发生了什么:/

4

1 回答 1

2

window.loading = setInterval(function(){

在上面的 function 行中loadingloading被重新定义为 setInterval 返回值,因为loading在第一次调用后它不再是一个函数。

于 2013-05-05T08:47:02.000 回答