2013-05-05 22 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

相關問題