2012-04-06 63 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

相关问题