可移动和droppable在wordpress管理中不起作用

时间:2014-05-01 15:58:11

标签: jquery wordpress jquery-ui

在我的wordpress元数据箱中,我正在创建拖放和可排序元数据字段。

加载jquery UI(完整稳定版本)加载到admin as。

function load_custom_wp_js() {

wp_register_script( 'jQuery_Ui', get_template_directory_uri() . '/js/jquery-ui.js');
wp_enqueue_style( 'jQuery_Ui' );

}
add_action( 'admin_enqueue_scripts', 'load_custom_wp_js' );

相对CSS:

 ul#content-box{
     position:relative;width:100%;height:auto;padding:20px 0px;background:#C7C7C7;
    }

    ul#content-box li.field{
     float:left;width:20%;height:50px;border:2px solid #787878;border-radius:2px;margin:3px 19px;background:#909090
    }

jquery的:

<script type="text/javascript">
jQuery(document).ready(function(){

  jQuery( "ul#contnet-box" ).sortable({
            });
      });

</script>

上面的Sortable对我来说很好,但是对于跟随可拖动的功能

jQuery( init );

function init() {
  $('ul#content-box').draggable();
}

抛出错误TypeError: jQuery(...).draggable is not a function。 droppable也是一样的错误。 sortable工作正常,但有draggable和droppable的问题。任何人都可以帮我解决实际问题。在wordpress管理员中有任何冲突吗?

2 个答案:

答案 0 :(得分:1)

Wordpress已经包含individual handles for many popular scripts,包括大多数jQuery UI功能。除非你有非常的理由不这样做,否则你应该使用WP附带的脚本文件而不是你自己的脚本文件。

我的猜测是,在您调用整个jQuery UI库之前,Wordpress Core或其他插件都会将jquery-ui-sortable加入队列,这会导致您的调用失败。您应该在浏览器的javascript控制台中看到有关此内容的错误,并且应该通过检查管理页面的来源来查看加载的代码。

请尝试仅使用add_action( 'admin_enqueue_scripts', 'jquery-ui-draggable' );

答案 1 :(得分:1)

我在处理插件时遇到了同样的问题。我用谷歌搜索了几个小时,最后创建了这个解决方案:

将此代码复制到插件的主要php文件中(注意函数的名称,也在add_action部分中)。

{{1}}

它启用被拒绝的命名句柄。当然,您/其他人可以在https://developer.wordpress.org/reference/functions/wp_register_script/

的函数中命名其他jQuery UI句柄