我花了好几个小时试图解决这个问题。
我正在尝试将shuffle.js包含在我的Wordpress主题中。它依赖于jQuery 1.9+& Modernizr的。
我已通过wp_enqueue_script
添加了我的脚本(见下文)
wp_enqueue_script( 'jquery');
wp_enqueue_script( 'modernizer', get_stylesheet_directory_uri() . '/js/modernizr.custom.js', array( 'jquery' ), '1', true );
wp_enqueue_script( 'shuffle', get_stylesheet_directory_uri() . '/js/jquery.shuffle.js', array( 'modernizer' ), '1', true );
wp_enqueue_script( 'my-shuffle', get_stylesheet_directory_uri() . '/js/my-shuffle.js', array( 'shuffle' ), '1', true );
我让他们彼此依赖,我将它们加载到页脚。
我已将3 .js
个文件包装在一些jQuery noConflict Wrappers中(见下文)
(function($) {
// Inside of this function, $() will work as an alias for jQuery()
// and other libraries also using $ will not be accessible under this shortcut
})(jQuery);
我仍然收到错误:
Uncaught TypeError: Cannot read property 'fn' of undefined
jquery.shuffle.js?ver=1:1212
Uncaught TypeError: Object [object Object] has no method 'shuffle'
my-shuffle.js?ver=1.6
我读到的所有东西都指向没有按顺序加载的东西,jQuery没有加载,但我认为不是这样的。当然我可能错了:)
有没有人有我可以尝试的想法?
我去了jQuery 1.11.1的缩小版本,并将其替换为捆绑了Wordpress的版本,并且全部开始行动了!
只有半天失利:(
见凯文的答案如下。无需更改捆绑的jQuery,有一个更新版本的shuffle.js
答案 0 :(得分:1)
Shuffle.js 错误地使用window.$
而不是window.jQuery
。通过替换this line来修复它:
factory(window.$, window.Modernizr);
这一个:
factory(window.jQuery, window.Modernizr);
它是near the top。
作者已经解决了这个问题,你可以从这里下载固定版本:https://github.com/Vestride/Shuffle/blob/e6cb28bd1eb4a5ff60b5d2925b1e26d857f3ec2a/dist/jquery.shuffle.js
答案 1 :(得分:0)
我们无法帮助您,除了告诉您jQuery
实际上并未定义,并且您必须在浏览器中对其进行调试。
检查您网页的来源,找到您的<script src="jquery...">
并确定该文件是否
jQuery
和<script>
标记