2016-05-13 114 views
-2

上下文:我使用了很多自定义JS的主题,它们都在工作,直到我开始添加自己的JavaScript,点我开始收到此错误:jQuery(...)。addClass(...)。viewportChecker不是一个函数

theme.js:28 Uncaught TypeError: jQuery(...).addClass(...).viewportChecker is not a function 

它的示数就行如下:

jQuery('.scroll1').addClass("hidden").viewportChecker({ 
    classToAdd: 'visible animated fadeIn', // Class to add to the elements when they are visible 
}); ; 

起初我以为的jQuery正在更新自己的音乐库,但因为这个问题是今天早上还在坚持。 ..我不相信是这样。

链接,援助http://yardlad.webbtechgroup.us

+2

它看起来像'viewportChecker'是一个jQuery插件。你确定你正在引用它的脚本文件吗?另外,如果没有小提琴,或者至少有足够的代码来重现问题,我们可以做的不多,以帮助您。 –

+0

我认为这个问题与viewPortChecker函数的范围有关。很有可能它不是由add类返回的对象的一部分。 –

+0

@RichardBarker - 是的。它是一个jQuery插件,它们(通常)是可链接的 – Jamiec

回答

2

enter image description here

你怎么看你的实际的jQuery文件加载那里所有的方式?

这是因为它被放在每个其他JavaScript包括头标记。该行

<script type='text/javascript' charset='utf-8' src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script> 

应该诚实地成为第一个脚本。我知道你的代码是:

<script type="text/javascript"> 
     !window.jQuery && document.write(unescape('%3Cscript type="text/javascript" src="rw_common/themes/multiregen/js/jquery-1.7.1.min.js"%3E%3C/script%3E')) 
    </script> 

但是,这不是按照你需要的顺序加载它。 jQuery应该在任何插件之前加载。

你看,这些插件通过jQuery.fn添加到jQuery对象。但是,如果jQuery尚未加载,他们会添加什么?稀薄的空气!

-3

元素与scroll1类,你所提供的网页上不存在。结果,jQuery无法找到您试图包装jQuery的元素,然后应用函数addClassviewportChecker

由于你的函数被链接,似乎最后一个导致错误。尝试分解它们,你会看到实际的错误位置在哪里。