无法在我的脚本之前执行jQuery

时间:2015-09-23 作者:jazzo

我有一个非常简单的JS脚本,名为script_1.js 坐在我的212个孩子主题的最底层。此脚本仅包含:

$(document).ready(function(){console.log("scriptLoaded");
});
我把它装上了functions.php:

function theme_enqueue_styles() {
    wp_enqueue_style( \'parent-style\', 
        get_template_directory_uri() . \'/style.css\' 
    );
    wp_enqueue_style( \'child-style\',
        get_stylesheet_directory_uri() . \'/style.css\',
        array( \'parent-style\' )
    );  
}
function wpb_adding_scripts() {
    wp_register_script( \'my_script\', 
        get_stylesheet_directory_uri() . \'/script_1.js\', 
        array( \'jquery\' ), 
        null, 
        true 
    );
    wp_enqueue_script( \'my_script\' );

}
add_action( \'wp_enqueue_scripts\', \'theme_enqueue_styles\' );
add_action( \'wp_enqueue_scripts\', \'wpb_adding_scripts\' );
现在,我阅读了文档,发现如果要将jQuery放在第一位,就必须使用上面的语法,因此array( \'jquery\' ).

问题是,它仍然不起作用,在控制台中,我仍然得到通常的:

TypeError: $ is not a function
$(document).ready(function(){
有一个链接可以看到问题的发生,here it is (控制台错误)。

有人知道为什么这样不行吗?我是否错误地将jQuery或其他内容排入队列?我看过一些例子,比如this one 这就是我从中获得灵感的地方,但没有乐趣。

2 个回复
SO网友:Pooja Mistry

尝试两件事——1。使用链接您的jswp_enqueue_script 行动如下:

add_action( \'wp_enqueue_scripts\', \'theme_name_scripts\' );

function theme_name_scripts() {
     wp_enqueue_script( \'script-name\', get_template_directory_uri() . \'/js/example.js\', array(\'jquery\'), \'\', true);
}
wp\\u enqueue\\u script()函数中的第三个参数将确保在当前js文件之前加载jquery。

在js文件中,替换$ 具有jQuery 作为:

jQuery(文档)。就绪(function(){console.log(“scriptLoaded”);});

SO网友:ivan rusin

此外,您还可以通过该结构包装所有JS代码:

(function($){

    // all your jQuery functions here

})(jQuery);