jQuery没有在Wordpress中定义,但我的脚本正确排队

nic*_*oby 12 javascript php wordpress jquery slidetoggle

我正在尝试将单独的javascript文件mobile-menu.js加载到我的Wordpress主题中.当我看到控制台时,它说,"jQuery没有被定义." 但是,我知道我正确地将我的脚本文件排入队列.有任何想法吗?

HTML文件:

<a href="#" id="menu-icon"></a> <!--this line wasn't here originally-->
    <div id="switchmenu"><!--switchmenu begin-->
        <?php wp_nav_menu( array( 'theme_location' => 'primary' ) ); ?>
    </div><!--switchmenu end-->
Run Code Online (Sandbox Code Playgroud)

functions.php文件:

function lapetitefrog_scripts() {
    wp_enqueue_style( 'lapetitefrog-style', get_stylesheet_uri() );
    wp_enqueue_script( 'lapetitefrog-mobile-menu', get_template_directory_uri() . '/js/mobile-menu.js', array(), '1.0', true );
}
add_action( 'wp_enqueue_scripts', 'lapetitefrog_scripts' );
Run Code Online (Sandbox Code Playgroud)

mobile-menu.js文件:

 jQuery(document).ready(function($) {
    $('#menu-icon').click(function() {
            $('#switchmenu').slideToggle("fast");
    });
});
Run Code Online (Sandbox Code Playgroud)

Gav*_*son 27

wp_enqueue_script('jquery');在排队脚本之前添加. 


Fai*_*eer 6

你可以试试:

首先排队Jquery。

wp_enqueue_script('jquery'); 
Run Code Online (Sandbox Code Playgroud)

然后在第三个参数中使用JQuery 依赖项将后一个脚本排入队列,即array('jquery')大多数人都忘记了这一点。

wp_enqueue_script( 'lapetitefrog-mobile-menu', get_template_directory_uri() . '/js/mobile-menu.js', array('jquery'), '1.0', true );
Run Code Online (Sandbox Code Playgroud)


jog*_*_pi 5

首先确保标题中包含jquery文件,并且您的文件需要jQuery

wp_enqueue_script( 
        'lapetitefrog-mobile-menu', 
        get_template_directory_uri() . '/js/mobile-menu.js', 
        array('jquery'), 
        '1.0', 
        true 
);
Run Code Online (Sandbox Code Playgroud)

其次你应该开始你的javascript文件,如:

(function($) {
    $(document).ready(function() {
        .......
    });
})(jQuery);
Run Code Online (Sandbox Code Playgroud)

要么

// Use jQuery in place of $
jQuery(document).ready(function() {
    .....
});
Run Code Online (Sandbox Code Playgroud)