未捕获的ReferenceError:未定义jQuery

我正在尝试将一个带有JQuery滑块插件的Wordpress网站放在一起,但插件没有显示在页面上,我总是得到上面的错误消息。

尽管在其他post中尝试了几种不同的修复方法,我仍然无法解决上述错误,包括将脚本标记放在“header.php”文件中。 任何帮助将不胜感激 – 谢谢!

‘footer.php’文件中的相关代码

    

网站: http://www.advanceprojects.com.au/ http://www.advanceprojects.com.au/

脚本始终按顺序运行。

所以基本上你甚至在加载jQuery库之前就试图使用jQuery。

你的脚本依赖于Nivo,而Nivo又依赖于jQuery库。

在加载库之后将脚本移动到行,或将库声明移动到头部。

还要确保将脚本包含在DOM Ready处理程序中。

所以你应该加载它们的顺序是

 -- jQuery -- Nivo Slider -- your script that uses the above 2 libraries. 

请参阅链接如何添加css和Js文件

http://codex.wordpress.org/Function_Reference/wp_enqueue_script

可能在JQuery之前,你的Js文件被加载了。

所以在Jquery文件加载后添加js文件

 wp_enqueue_script("yourjs","yourjspath",array('jquery'), true); 

在最新版本的Wordpress中,这可能是由核心性能改进引起的:

尝试将其放在wp.config文件中:

 /** Absolute path to the WordPress directory. */ if ( !defined('ABSPATH') ) define('ABSPATH', dirname(__FILE__) . '/'); define('CONCATENATE_SCRIPTS', false); 

使用

 jQuery(document).ready(function(){ jQuery('#wpns_slider').nivoSlider({effect:'random',slices:2,}); }); 

代替

 jQuery(window).load(function(){ jQuery('#wpns_slider').nivoSlider({effect:'random',slices:2,}); }); 

$(window).load(function() {... })显式绑定到窗口的load事件,你的代码在加载jQuery库之前就已经被触发了。 您必须使用DOM Ready处理程序。

我找到了解决方案。 我在Wordpress的管理部分遇到错误,解决方案是等待HTML文档完全加载和解析(DOMContentLoaded)。

我的工作代码:

 add_action('admin_enqueue_scripts','my_script'); function my_script(){ if(is_admin()){ ?>   

参考:

DOMContentLoaded