Javascript AJAX负载破坏我的媒体上传器和颜色选择器?
我在wordpress管理页面中使用了选项卡式导航,它本身运行良好(我可以保存数据)Javascript AJAX负载破坏我的媒体上传器和颜色选择器?,javascript,php,jquery,ajax,wordpress,Javascript,Php,Jquery,Ajax,Wordpress,我在wordpress管理页面中使用了选项卡式导航,它本身运行良好(我可以保存数据),现在我想在页面之间切换时添加一些ajax但问题是,当我加载我的选项卡colorpicker和media uploader不再工作时,但我仍然可以保存与media uploader和colorpicker类似的复选框无关的数据 它会正确加载我的表单,但不会加载我的脚本:( 我的AJAX调用如下所示: jQuery(document).ready(function($){ jQuery('.nav-tab').o
,现在我想在页面之间切换时添加一些ajax
但问题是,当我加载我的选项卡colorpicker和media uploader不再工作时,
但我仍然可以保存与media uploader和colorpicker类似的复选框无关的数据 它会正确加载我的表单,但不会加载我的脚本:( 我的AJAX调用如下所示:
jQuery(document).ready(function($){
jQuery('.nav-tab').on('click', function(e){
e.preventDefault();
jQuery('.form_options').fadeOut().load(jQuery(this).attr('href') + ' .form_options',function(){
jQuery('.form_options').fadeIn();
});/*End load callback function*/
});/*End click function*/
});
我正在使用此代码调用管理页面中的脚本:
add_action( 'admin_init', 'register_override_theme_js' );
function register_override_theme_js() {
/* Register our main Admin js script. */
$file_dir = get_template_directory_uri();
wp_register_script( 'my-admin-script', $file_dir . '/js/admin_ajax.js', false, '1.0' );
/*Register our Iris Colorpicker js script. */
wp_register_script( 'my-color-picker', $file_dir . '/js/colorpicker_script.js', array( 'wp-color-picker' ), false, true );
/* Register our uploader js script. */
wp_register_script( 'uploader', $file_dir . '/js/uploader.js', false, '1.0' );
}
function my_plugin_admin_scripts() {
/* Link our already registered script to a page */
wp_enqueue_script( 'my-admin-script' );
wp_enqueue_script( 'uploader' );
wp_enqueue_script( 'my-color-picker' );
if ( ! did_action( 'wp_enqueue_media' ) ){
wp_enqueue_media();
}
}
function my_plugin_admin_styles() {
/* Link our already registered css to a page */
wp_enqueue_style( 'admin_style' );
wp_enqueue_style( 'wp-color-picker' );
}
有人知道我做错了什么吗?欢迎提出任何想法或建议。谢谢!我想说,你的问题是,如果你用AJAX加载每个选项卡,那么颜色选择器和媒体上传器javascript没有正确初始化 让我澄清一下: 没有AJAX: 已加载所有脚本-其中可能包含document.ready子句,并单击非“实时”事件的事件-(单击而不是.on) 当所有元素都存在于DOM中时,当您在一开始就拥有页面上的所有内容时,这些功能就可以正常工作 使用AJAX: 一次加载1个“选项卡” 您的所有javascript都已加载 这意味着选项卡2和3 HTML尚未出现在页面上 任何非活动的选择器:
$('#colourpicker').click()
如果在第一次加载时页面上不存在id=“colorpicker”
,则将不起作用
两种解决方案:
编辑所有要使用的代码。在上而不是。单击(在您正在使用的任何库中)
在AJAX调用期间动态加载javascript
希望这是清楚的