【问题标题】:Cannot read property 'fn' of undefined in Wordpress无法读取 Wordpress 中未定义的属性“fn”
【发布时间】:2021-03-09 09:26:44
【问题描述】:

我试图在 Wordpress 页面中复制这篇博文 Create A Realistic Self-solving Rubik's Cube With Three.js。但是,我得到了错误

Uncaught TypeError: Cannot read property 'fn' of undefined
    at jquery.cube.threejs.min.js?ver=5.5.3:21

这就是我在 functions.php 中加载必要的 javascript 文件的方式

wp_register_script('threejs', 'https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js', array( 'jquery' ));
wp_enqueue_script( 'threejs' );

wp_register_script('cubejs', get_stylesheet_directory_uri() . '/assets/libs/jquery.cube.threejs.min.js',array( 'jquery' ));
wp_enqueue_script( 'cubejs' );

wp_register_script('cubeCode', get_stylesheet_directory_uri() . '/assets/js/cube.js',array( 'jquery'  ));
wp_enqueue_script( 'cubeCode' );

cube.js 文件就是这个

(function($) {
    jQuery( document ).ready(function() {       
        const myCube = jQuery(".cube").cube();
        myCube.execute("(U R U' R') (U R U' R') (U R U' R') (U R U' R') (U R U' R') (U R U' R')");
    })
})(jQuery);
  

当我实际检查页面的源代码时,脚本的顺序是正确的

<script type='text/javascript' src='.../wp-includes/js/jquery/jquery.js?ver=1.12.4-wp' id='jquery-core-js'></script>
<script type='text/javascript' src='https://cdnjs.cloudflare.com/ajax/libs/three.js/r123/three.min.js?ver=5.5.3' id='threejs-js'></script>
<script type='text/javascript' src='.../assets/libs/jquery.cube.threejs.min.js?ver=5.5.3' id='cubejs-js'></script>
<script type='text/javascript' src='.../assets/js/cube.js?ver=5.5.3' id='cubeCode-js'></script>

【问题讨论】:

  • 这是旧的 jquery 版本吗?这有帮助吗? stackoverflow.com/questions/52451388/…
  • 默认是5.5.3版的Wordpress。
  • 那是Wordpress的版本,但是jQuery的版本是1.12.4,从以wp-includes/js/jquery/jquery.js?ver=1.12结尾的script标签可以看出.4-wp
  • 在演示页面上,只包含三个js文件,如下所示: 为什么你认为你有 4 个?

标签: javascript jquery wordpress three.js


【解决方案1】:

Wordpress 使用的是旧版本的 jQuery。阅读本文并尝试使用 wp_enqueue_scripts https://developer.wordpress.org/reference/hooks/wp_enqueue_scripts/

function my_jquery_enqueue() {
    wp_deregister_script( 'jquery' );
}

add_action( 'wp_enqueue_scripts', 'my_jquery_enqueue' );

【讨论】:

    猜你喜欢
    • 2019-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-03
    • 2018-06-17
    • 1970-01-01
    • 2022-10-02
    • 2019-02-07
    相关资源
    最近更新 更多