我的第一个StackOverflow问题 - 如果有错误道歉。我知道有很多关于在插件中注册/使用datepicker的问题,但没有一个能解决我的问题。
这是我孩子主题的函数中的代码.php
// load jQuery date picker for public and admin pages
function wp_sos_enqueue_front_datepicker() {
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-ui-css', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css');
}
function wp_sos_enqueue_back_datepicker() {
wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-ui-css', 'https://ajax.googleapis.com/ajax/libs/jqueryui/1.12.1/themes/smoothness/jquery-ui.css');
}
add_action( 'admin_enqueue_scripts', 'wp_sos_enqueue_back_datepicker' );
add_action( 'wp_enqueue_scripts', 'wp_sos_enqueue_front_datepicker' );
在我的前端表单中,我有这个HTML:
<input type="text" readonly="readonly" id="sstxtdate"/>
在js中我有这个:
jQuery('#sstxtdate').datepicker({ dateFormat: 'yy-mm-dd' });
以上作品。
在我的管理页面表单中,我有这个HTML:
<input type="text" readonly="readonly" value="2017-07-09" id="txtrsdate"/>
当我执行这个js时
jQuery('#txtrsdate').datepicker({ dateFormat: 'yy-mm-dd' });
我在控制台上出现此错误
Uncaught TypeError: jQuery(...).datepicker is not a function
at Object.<anonymous> (recent-sightings-admin.js?ver=1.0.0:78)
at i (load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils&ver=4.8.1:2)
at Object.fireWith [as resolveWith] (load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils&ver=4.8.1:2)
at y (load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils&ver=4.8.1:4)
at XMLHttpRequest.c (load-scripts.php?c=0&load[]=jquery-core,jquery-migrate,utils&ver=4.8.1:4)
任何建议都将受到赞赏。
我已经解决了这个问题。以下是如何帮助其他人的。
在包含日期选择器控件的同一页面上,我还需要使用以下代码创建的WP编辑器实例(在Stack Overflow中的其他位置找到)
wp_editor( $row["description"], 'tasighting', $settings );
\_WP_Editors::enqueue_scripts();
print_footer_scripts();
\_WP_Editors::editor_js();
如果删除_WP_Editors :: enqueue_scripts();行然后日期选择器工作正常。想必是某种剧本冲突?