Wordpress wp_enqueue_script和优先级

时间:2015-06-17 12:36:10

标签: php wordpress

我有一个代码:

add_action( 'wp_enqueue_scripts', 'include_js' );
function include_js(){   
    wp_enqueue_script( 'bootstrapjs', "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js");
    wp_enqueue_script( 'jQueryui', "http://code.jquery.com/ui/1.11.4/jquery-ui.js");
    wp_enqueue_script( 'stellar', get_template_directory_uri()."/js/jquery.stellar.min.js");
    wp_register_script( 'owl-carousel', get_template_directory_uri() . '/owl/owl-carousel/owl.carousel.js', array( 'jquery' ) );
    wp_enqueue_script( 'owl-carousel' );
    wp_enqueue_script( 'scripts', get_template_directory_uri()."/js/script.js",  array( 'owl-carousel', 'jquery' ), '1.0', true );                
}

在文件script.js中我加载了一个来自' owl-carousel'的函数。我收到了这个错误:

Uncaught TypeError: $(...).owlCarousel is not a function
enter code here

这很奇怪,因为我在代码的最后一行(上面)添加了数组(' owl-carousel' jquery'),所以script.js应该在之后加载猫头鹰 - 旋转木马,但它没有。我通过按F12检查了html代码,并在owl-carousel之前加载了script.js。为什么?我的错误在哪里? 此致

2 个答案:

答案 0 :(得分:2)

jQuery默认包含在WordPress中in no-conflict mode。在noConflict()模式下,jQuery的全局$快捷方式不可用,因此您需要使用以下内容使其可供您使用:

jQuery(document).ready(function($) {
    // Inside of this function, $() will work as an alias for jQuery()
    // and other libraries also using $ will not be accessible under this shortcut
});

Owl Carousel无法正常工作,因为它使用$作为快捷方式,而$尚未被指定为jQuery的快捷方式。

另一种选择是“排队”包含的jQuery,并“排队”你自己的版本。

答案 1 :(得分:0)

实际上,如果问题是$不能用作jQuery的快捷方式,那么你会收到一条错误,指出它并不知道$是什么。

此处的错误表示owlCarousel未加载或未初始化。

您应该在控制台中检查加载或运行owlCarousel脚本时是否显示错误(同时在网络选项卡中检查调用了哪个URL以及它是否是正确的路径)。