2013-01-25 28 views
0

我在Firefox的控制檯收到此錯誤:jQuery的, '不是' 的函數,擴展功能不能正常工作

$spinner.setupSpinner is not a function 
[Break On This Error] 

$spinner.setupSpinner(); 

ed247.base.js(線116)

Postliste.aspx加載這些文件:

jquery-1.9.0.js" 
jquery-ui-1.9.0.js 
jquery.ui.datepicker-no.js 
jquery-scrollTo-min.js 
ed247.base.js 

ed247.base.js的摘錄:

jQuery.fn.setupSpinner = function() { 
     $(this) 
      .ajaxStart(function() { 
       $(this).show(); 
      }) 
      .ajaxStop(function() { 
       $(this).hide(); 
      }) 
     ; 
     return this; 
    }; 

    // init 
    function init() { 
     // cache jquery objects 
     $item = $(config.ids.item); 
     $searchResult = $(config.ids.searchResult); 
     $spinner = $(config.ids.spinner); 
     $datepicker = $(config.ids.datepicker); 
     $todatepicker = $(config.ids.todatepicker); 
     $searchButton = $(config.ids.searchButton); 
     $searchItemTemplate = $(config.templateids.searchItemTemplate); 
     $searchHeaderTemplate = $(config.templateids.searchHeaderTemplate); 
     $itemTemplate = $(config.templateids.itemTemplate); 
     $attachmentsTemplate = $(config.templateids.attachmentsTemplate); 
     $backLinks = $(config.classes.backLinks); 
     $checkout = $(config.ids.checkout); 


     $backToStep1 = $backLinks.find("li:nth-child(1)"); 
     $backToStep2 = $backLinks.find("li:nth-child(2)"); 

     $spinner.setupSpinner(); 

這是該頁的URL:Link

問題似乎是擴展功能找不到? 我該如何解決這個問題?

+0

如何重現此錯誤?用螢火蟲看你的網站不會出錯。 – iappwebdev

+0

你在哪裏設置'$ spinner'?它確實是一個jQuery對象嗎? – iappwebdev

+0

@Simon, http://api.jqueryui.com/spinner/ –

回答

1

您正在加載jQuery庫兩次。當你嘗試使用擴展時,它不再存在,因爲你用新的替換了jQuery對象。

+0

事實上,他加載jQuery庫兩次,我沒有看到。但有一個問題:在兩個包含jQuery之後,他正在加載他的腳本。它不應該沒有後果嗎?由於第一個jQuey對象被第二個對象覆蓋,然後擴展第二個jQuery對象? – iappwebdev

+0

@Simon:不,帶有擴展名的腳本在第一次包含jQuery後加載。 jQuery的第二個包含在body中,所以它在擴展添加之後加載,但在使用擴展的'ready'事件之前加載。 – Guffa

+0

@Guffa, 感謝您的回覆! 我刪除了額外的參考。我已經瀏覽了所有應該加載的文件,但是我找不到JQuery加載的位置。 現在JQuery文件正在用spinner函數加載腳本之後,所以我得到一個JQuery錯誤,因爲那個JQuery沒有被加載。 一個很好的解決辦法的任何提示? –