我目前正在使用一个教程来学习如何在我正在构建的wordpress主题中实现一个名为“Isotope”的JQuery插件。以下是我正在使用的教程的链接:http://www.designlunatic.com/2011/08/isotope-tutorial/#wpcf7-f780-w1-o1
我在functions.php文件中引用了JQuery库,我已经使用wp_enqueue_script(和wp_register_script)函数将它排队并且同位素.js文件(我也注册了这个文件)。我知道这些文件正在链接,因为当我查看源代码并单击链接时,我不会收到错误。文件出现,它们似乎通过wp_head函数正确链接。
我遇到的问题是使用同位素的脚本在控制台中给我一些错误。
我尝试了一些不同的方法,但错误通常是:
“未捕获的TypeError:对象[对象对象]的属性'$'不是函数”
错误是指文档头部中包含的以下脚本:
<script type="text/javascript">
$(document).ready(function() {
alert('called');
var $container = $('#content');
$container.isotope({
filter: '*',
animationOptions: {
duration: 750,
easing: 'linear',
queue: false
}
});
$('#nav a').click(function() {
var selector = $(this).attr('data-filter');
$container.isotope({
filter: selector,
animationOptions: {
duration: 750,
easing: 'linear',
queue: false
}
});
return false;
});
});
</script>
我已经尝试将它作为一个单独的脚本加载并注册/排队它依赖于JQuery,这给了我基本相同的错误。我也尝试用'JQuery'替换'$'并将'$'放在函数的参数中。当我切换时,我收到此错误:
“未捕获的TypeError:对象[对象对象]的属性'JQuery'不是函数”
我在这里做错了什么?我尽可能地遵循教程说明。请帮忙!谢谢!
答案 0 :(得分:3)
jQuery中的 J 不是大写的。它的小写。所以,如果你把它改成jQuery(document).ready(function($){});
,它应该有用。
如果您的代码中某处启用了jQuery noConflict模式,则会出现错误。
WordPress附带的jQuery库设置为noConflict()
模式。有关详细信息,请参阅wp_enqueue_script的代码。
干杯! :)