2012-04-06 27 views
0

我在兩個站點中使用了一個函數,但是當我想將它實現到第三個站點時,它不起作用。當我看着螢火蟲控制檯時,它說它不是一個功能。我的函數是在一個單獨的文件名爲profilter.js是這樣的:我有功能,但在螢火蟲控制檯它說它不是一個函數,我打電話給它?

jQuery.fn.sfProductFilter = function (options) { 
    options = options || {}; 
    return this.each(function() { 
     var pf = new SFProductFilter(this, options) 
    }) 
} 

,我從一個頁面和代碼調用它是:

$(document).ready(function(){ 
      console.log($("ul.productSmall")); 
      $('ul.productSmall').sfProductFilter(); //says not a function. 
}); 

我經歷的console.log以下 檢查如果我從JS CONSOLE.LOG 1- jQuery是已經 2-包含的文件它的工作原理,但任何代碼塊它不 3- ul.productSmall內示出的console.log

正確的結果

我可以提供的鏈接現場但只是不提供它,因此版主不會認爲它是垃圾郵件。

我已經掙扎了很多,請讓我知道我在哪裏犯錯?

console look like

+0

重置瀏覽器緩存並重試,檢查腳本是否實際加載 – sakhunzai 2012-04-06 04:34:01

+0

如何檢查腳本正在加載? – Imran 2012-04-06 04:34:50

+0

sfProductFilter或SFProductFilter不是函數嗎? – 2012-04-06 04:35:54

回答

2

(從comment above複製。)

您包括jQuery的兩倍,第二負載情況遠低於納入profilter.js和破壞您的自定義功能。

+1

這!當您使用包含jQuery的框架(如WP,Drupal等)時,這很常見。所以當你添加自己的jQuery包含時,一個會覆蓋另一個。你應該總是使用var $ myJQ = jQuery.noConflict();然後將您的擴展添加到$ myJQ。這將確保您在處理更大的代碼庫時不會遇到像這樣的問題。 – 2012-04-06 07:29:35

0

你是否包括jQuery UI的腳本?看起來像.button()被稱爲

function myChecks(){ 
    $("#checkboxcontainer input[type='checkbox']").button(); 
} 

我有一個預感,這將做的伎倆。

+0

它說: $(「ul.productSmall」)。sfProductFilter不是一個功能 [Break On This Error] $( 'ul.productSmall')sfProductFilter()。 – Imran 2012-04-06 04:40:41

+0

是你的腳本被包含在jQuery之前還是之後? jQuery.fn.sfProductFilter = function(options){ options = options || {}; 返回this.each(函數(){VAR PF =新SFProductFilter(這一點,選項) })} 叫 ? – 2012-04-06 05:00:46

+1

希望一旦你包括jQuery UI這可能會修復自己 – 2012-04-06 05:34:57

相關問題