2016-05-13 95 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

由於你的函數被鏈接,似乎最後一個導致錯誤。嘗試分解它們,你會看到實際的錯誤位置在哪裏。