【问题标题】:Uncaught ReferenceError: jQuery is not defined未捕获的 ReferenceError:未定义 jQuery
【发布时间】: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/

【问题讨论】:

  • 把库放在头部有什么问题?

标签: jquery wordpress plugins referenceerror


【解决方案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 处理程序。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-01-23
          • 2014-04-12
          • 2016-11-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多