麻烦在wordpress中排队内置的jquery-ui脚本

时间:2014-02-14 14:57:51

标签: javascript jquery wordpress jquery-ui

我能够在整个控制台上注册和排队我自己的jquery-ui插件下载。由于某种原因,我无法使用相同的方法加载jquery-ui-core。

控制台还抱怨我的$不是$(document).ready(function)初始jquery包装器的函数。即使wp在内核中构建了自己的jquery版本,我也明白了。

搜索文档表明,wp还包含大量的jquery-ui脚本。所以我走了那条路,但他们没有使用他们的手柄。

我做错了什么?

        wp_enqueue_script('jquery-core');
        //wp_register_script( 'jquery-core', get_template_directory_uri() . '/js/jquery.ui.core.min.js', array( 'jquery' ));
        wp_enqueue_script('jquery-ui-core');
        //wp_register_script( 'jquery-draggable', get_template_directory_uri() . '/js/jquery.ui.draggable.min.js', array( 'jquery' ));
        wp_enqueue_script('jquery-ui-draggable');
        //wp_register_script( 'jquery-droppable', get_template_directory_uri() . '/js/jquery.ui.droppable.min.js', array( 'jquery' ));
        wp_enqueue_script('jquery-ui-droppable');
       // wp_register_script( 'jquery-mouse', get_template_directory_uri() . '/js/jquery.ui.mouse.min.js', array( 'jquery' ));
        wp_enqueue_script('jquery-ui-mouse');
       // wp_register_script( 'jquery-sortable', get_template_directory_uri() . '/js/jquery.ui.sortable.min.js', array( 'jquery' ));
        wp_enqueue_script('jquery-ui-sortable');
        //wp_register_script( 'jquery-widget', get_template_directory_uri() . '/js/jquery.ui.widget.min.js', array( 'jquery' ));
        wp_enqueue_script('jquery-ui-widget');

目前我的register_script函数调用注释掉了,当我添加enqueue_script以通过其句柄调用它时,确实有效,但是控制台让我误解了这些文件(从jquery-ui下载)我认为它的bc jquery是没有被识别,因此关于$未被定义的错误。

如果我首先使用wp_register_script调用脚本,它实际上会加载,但会抛出许多指向jquery-ui库的控制台错误。最后,最后一个错误实际上是我的代码说$(...)。accordion();不是一个功能。我从jquery-ui演示中提取了这段代码。我可以在jsfiddle中对我的jquery-ui构建进行单元测试,这一切都很有效。我没有在那里手动调用jquery-ui库,因为他们有一个下拉列表来选择它,但我输入了html和js演示代码。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

关于$未定义的错误是因为在WP中没有冲突模式加载jQuery。

替换:

$(document).ready(function(){

使用:

jQuery(document).ready(function($){

另外,只是为了确保这里的PHP是一个带有enqueue脚本钩子的函数。

function wpse_load_js() {
   wp_enqueue_script('jquery-ui-core');
   wp_enqueue_script('jquery-ui-draggable');   
   wp_enqueue_script('jquery-ui-droppable');      
   wp_enqueue_script('jquery-ui-mouse');
   wp_enqueue_script('jquery-ui-sortable');
   wp_enqueue_script('jquery-ui-widget');
}
add_action( 'wp_enqueue_scripts', 'wpse_load_js' );