未捕获的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