WordPress入队noConflict()错误$不是函数?

时间:2015-10-20 13:56:27

标签: javascript php jquery wordpress zurb-foundation-5

已经8年的WP开发,这个问题从未消失,这让我疯狂。始终显示$ is not a function,或jQuery is not a functionfoundation is not a function ...有人帮助我一劳永逸地将其扼杀在萌芽状态?

我的enqueue.php:

// initialize packages ...
function source_enqueue() {

    // init $wp_styles variable
    // adds conditional wrapper around ie stylesheet
    global $wp_styles;
    if (!is_admin()) {

        // jquery, bower, foundation, app js, style, app css

        // init jquery ...
        wp_enqueue_script( 'jquery' );
        // init foundation
        wp_enqueue_script( 'foundation', 'https://cdn.jsdelivr.net/g/foundation@5.5.1(js/foundation.min.js+js/vendor/fastclick.js+js/vendor/jquery.cookie.js+js/vendor/jquery.js+js/vendor/modernizr.js+js/vendor/placeholder.js),camanjs@4.1.2', array(), '2.1.3', true );
        // init normalize
        wp_enqueue_style( 'foundation', 'https://cdn.jsdelivr.net/g/foundation@5.5.1(css/normalize.css),fontawesome@4.4.0,animatecss@3.4.0', array(), '', 'all' );
        // init app.min.js
        wp_enqueue_script( 'app', get_template_directory_uri() . '/assets/dist/app.min.js', array( 'jquery' ), '', true );
        // init app.min.css
        wp_enqueue_style( 'app', get_template_directory_uri() . '/assets/dist/app.min.css', array(), '', 'all' );
        // init style.css
        wp_enqueue_style( 'style', get_template_directory_uri() . '/style.css', array(), '', 'all' );

        // init comment reply ...
        if ( is_singular() AND comments_open() AND (get_option('thread_comments') == 1)) {
            wp_enqueue_script( 'comment-reply' );
        }

    }

}

// init source_enqueue() ...
// - - - - - - - - - - - - - - - - -
add_action( 'init', 'source_enqueue' , 999 );

我的app.js:

$.noConflict();
$(document).foundation();

我尝试将它包装在不同的功能中无济于事:

jQuery(document).ready(function(){
    jQuery(document).foundation();
});

或:

$(document).ready(function(){
    $(document).foundation();
});

没有任何作用。错误仍然存​​在:$ is not a function

在我疯了之前,有人帮我解决这个问题,然后将我漂亮的桌面扔进了木刻器?

4 个答案:

答案 0 :(得分:2)

经过多年的挖掘,测试和试验,我找到了答案。我决定给这一个最后一枪,它有效。没有错误,控制台注册基础。对于那些一直在努力的人来说,这就是让您的排队基础脚本正常运行的代码。我甚至会提供CDN。

需要2天才能接受我自己的回答。

enqueue.php / functions.php,但是你需要你的功能:

// enqueue.php or functions.php
wp_enqueue_script( 'foundation', 'https://cdn.jsdelivr.net/g/foundation@5.5.3(js/foundation.min.js+js/vendor/jquery.js+js/vendor/modernizr.js),scrollreveal.js@0.1.2', array(), '', true );

app.js:

// app.js
$ = jQuery.noConflict( true );

(function( $ ) {
    $(document).foundation();
    // other code here ...
})(jQuery);

答案 1 :(得分:0)

你为什么要加入' jquery'。 jQuery总是被Wordpress排队。

删除wp_enqueue_script( 'jquery' );

在你的js文件中

jQuery(document).ready(function($){
    //then $ works
    // your code
});

答案 2 :(得分:-1)

只需添加jQuery.js或jQuery-min库并尝试:

     $k = jQuery.noConflict();
     $k(document).ready(function(){
         //then $ works
         // your code
     });

答案 3 :(得分:-2)

在页面顶部“包含”标准jquery网址...