背景信息:我使用的主题包含大量自定义JS,直到我开始添加自己的javascript时才开始工作,此时我开始收到此错误:
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正在更新他们的库,但由于问题仍然存在于今天早上......我不相信是这样的。
答案 0 :(得分:3)
你看到你的实际jQuery文件如何在那里加载?
那是因为它是在head标签中包含的每个其他javascript之后放的。这条线
#Days passed from last SEP client update
$Error.Clear();
try {
$res=(Get-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Symantec\Symantec Endpoint Protection\AV" PatternFileDate).PatternFileDate
}
catch
{
Write-Host "ERROR: $($Error[0])";
exit 1;
}
if ($Error.Count -eq 0) {
$y1=[int]$res[0]+1970;
$m1=[int]$res[1]+1;
$d1=[int]$res[2];
$stat2 = [string](get-date -uformat "%m %d %Y")
$t2=$stat2.split(" ")
$m2=[int]$t2[0];
$d2=[int]$t2[1];
$y2=[int]$t2[2];
$diff=($y2-$y1)*365+($m2-$m1)*30+($d2-$d1);
write-host "Statistic: $diff";
write-host "Message: Last SEP client update date: $m1/$d1/$y1";
exit 0;
}
write-host "Message: Can't find ""HKLM:\SOFTWARE\Symantec\Symantec Endpoint Protection\AV\PatternFileDate"" registry value";
老实说,应该是第一个包含的脚本。我知道你有代码:
<script type='text/javascript' charset='utf-8' src='http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js'></script>
但是,这并不是按照您需要的顺序加载它。应该在任何插件之前加载jQuery。
你知道,这些插件通过<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还没有被加载,那么他们会添加什么呢?稀薄的空气!
答案 1 :(得分:-3)
您提供的页面上不存在类scroll1
的元素。结果,jQuery无法找到您尝试包装jQuery的元素,然后应用函数addClass
和viewportChecker
。
由于您的函数被链接,似乎最后一个导致错误。尝试拆分它们,您就会看到实际的错误位置。