未捕获的 ReferenceError:未定义 jQuery
Posted
技术标签:
【中文标题】未捕获的 ReferenceError:未定义 jQuery【英文标题】:Uncaught ReferenceError: jQuery is not defined 【发布时间】:2013-06-29 10:32:05 【问题描述】:我正在尝试将一个带有 JQuery 滑块插件的 Wordpress 网站放在一起,但该插件没有显示在页面上,并且我总是收到上述错误消息。
尽管尝试了其他帖子中建议的几种不同修复方法,但我似乎仍然无法修复上述错误,包括将脚本标记放在“header.php”文件中。任何帮助将不胜感激 - 谢谢!
'footer.php'文件中的相关代码
<!--Load JQuery-->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
</body>
</html>
网站:http://www.advanceprojects.com.au/
【问题讨论】:
把库放在头部有什么问题? 【参考方案1】:脚本始终按顺序运行。
所以基本上你甚至在加载 jQuery 库之前就尝试使用 jQuery。
您的脚本依赖于 Nivo,而后者又依赖于 jQuery 库。
要么将脚本移至库加载后的行,要么将库声明移至头部。
还要确保将脚本包含在 DOM Ready
处理程序中。
所以你应该加载这些的顺序是
-- jQuery
-- Nivo Slider
-- your script that uses the above 2 libraries.
【讨论】:
【参考方案2】:这对我有用。
添加一行
wp_enqueue_script('jquery');
发生此错误是因为未包含 jquery,应在加载任何其他脚本之前包含该错误。 这是一个例子:
firstplugin.php
<?php
/*
Plugin Name: Plugintrial
Description: plugin to test jquery
Version: 1
Author: Dismi Paul
*/
function childtheme_custom_login()
wp_enqueue_script('jquery');
wp_enqueue_script('my-custom-script', plugins_url('/test.js', __FILE__));
?>
<h1>Welcome to My Homepage</h1>
<p id="intro">My name is Donald.</p>
<p>I live in Duckburg.<?php echo plugins_url('/test.js', __FILE__); ?></p>
<?php
add_action('login_head', 'childtheme_custom_login');
test.js
jQuery(document).ready(function()
jQuery("#intro").css("background-color", "yellow");
);
console.log("it works");
【讨论】:
这对我有用。谢谢!【参考方案3】:查看链接如何添加 css 和 Js 文件
http://codex.wordpress.org/Function_Reference/wp_enqueue_script
可能在 JQuery 之前,你的 Js 文件已经加载完毕。
所以在加载 Jquery 文件后添加 js 文件
例子
wp_enqueue_script("yourjs","yourjspath",array('jquery'), true);
【讨论】:
【参考方案4】:在最新版本的 Wordpress 中,这可能是由核心性能改进引起的:
试着把它放在你的 wp.config 文件中:
/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
define('ABSPATH', dirname(__FILE__) . '/');
define('CONCATENATE_SCRIPTS', false);
【讨论】:
【参考方案5】:使用
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() ... )
显式绑定到窗口的加载事件,您的代码在加载 jQuery
库之前已经触发。您必须使用 DOM Ready
处理程序。
【讨论】:
以上是关于未捕获的 ReferenceError:未定义 jQuery的主要内容,如果未能解决你的问题,请参考以下文章
未捕获的 ReferenceError:未定义 showCategory
未捕获的 ReferenceError:“$ 未定义”[重复]
PhoneGap 错误 - “未捕获的 ReferenceError:cordova 未定义”