1

我目前正在使用教程来学习如何在我正在构建的 wordpress 主题中实现一个名为“Isotope”的 JQuery 插件。这是我正在使用的教程的链接:http: //www.designlunatic.com/2011/08/isotope-tutorial/#wpcf7-f780-w1-o1

我在functions.php 文件中引用了JQuery 库,并使用wp_enqueue_script(和wp_register_script)函数将它和isotope.js 文件(我也注册了这个文件)排入队列。我知道这些文件被链接到,因为当我查看源代码并单击链接时,我没有收到错误消息。这些文件出现并且它们似乎通过 wp_head 函数正确链接。

我遇到的问题是使用同位素的脚本在控制台中给了我某种错误。

我尝试了几种不同的方法,但错误通常是:

“未捕获的 TypeError:对象 [object Object] 的属性 '$' 不是函数”

该错误是指文档头部中包含的以下脚本:

<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:对象 [object Object] 的属性 'JQuery' 不是函数”

我在这里做错了什么?我已经尽可能地按照教程说明进行操作。请帮忙!谢谢!

4

1 回答 1

3

jQuery 中的J不是大写的。它的小写字母。因此,如果将其更改为jQuery(document).ready(function($){});,它应该可以工作。

如果您在代码中的某处启用了jQuery noConflict模式,则会发生错误。

WordPress 附带的 jQuery 库设置为该noConflict()模式。有关详细信息,请参阅wp_enqueue_script的法典。

干杯! :)

于 2013-04-15T20:07:30.333 回答