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

未捕获的 ReferenceError:$ 未定义 [重复]

未捕获的 ReferenceError:未定义窗口

未捕获的 ReferenceError:未定义 url