2013-05-05 48 views
2

嗨,我有这一块我的代码:的jQuery /使用Javascript - “不是一个函数错误”,但功能被定义

<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(); 

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

回答

2
window.loading = setInterval(function(){

在功能loading上面的行,loading正在被重新定义给setInterval返回值,因为它的loading在第一次调用后不再是函数。

+0

是的,改为** window.load **,它的工作原理,你摇滚!多谢,伙计 – sbaaaang 2013-05-05 08:49:01

相关问题