在我的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管理员中有任何冲突吗?
答案 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句柄