我正在尝试在JQuery UI对话框中实现CKEditor,当对话框第一次打开时它完美无缺。
当我第二次打开对话框时,文本区域如“style:hidden”和编辑器未加载?
对话框
MyApp.Dialog = $('<div></div>');
MyApp.Dialog
.dialog({
modal: true,
autoOpen: false,
title: title,
width: width,
height: height,
close:function(){
$(this).find('textarea').ckeditorGet().destroy();
},
buttons: {
'OK': function() {
form = $(this).find('form');
if (form.validate().form() == true) {
MyApp.submitFormWithAjax(form, $(this));
} else {
return false;
}
},
Cancel: function() {
$(this).dialog('close');
}
}
});
MyApp.Dialog.load(url, function() {
EventManager.publish('showFormDialogLoaded');
});
MyApp.Dialog.dialog('open');
在我的管理页面上我正在等待加载对话框..
$('.admin-create-article').click(function(event) {
MyApp.showFormDialog($(this).attr('href'), 'Neuer Artikel', 700, 630);
EventManager.subscribe('showFormDialogLoaded', function() {
$('.editor').ckeditor( function() {}, { skin : 'v2' } );
});
event.preventDefault();
});
答案 0 :(得分:4)
我遇到了同样的问题,但现在它适用于我。
您必须在每个对话框构造上执行此操作(创建并销毁ckeditor):
if (CKEDITOR.instances.editorD != null && CKEDITOR.instances.editorD != 'undefined')
{
CKEDITOR.instances.editorD.destroy();
}
CKEDITOR.replace( 'editorD',
{
language : 'fr',
toolbar_Mytoolbardata :
[
['Bold','Italic','Underline','Strike'],
['FontName','FontSize'],
['TextColor']// No comma for the last row.
],
toolbar : 'Mytoolbardata',
skin: 'v2',
width : 403,
height : 25,
disableObjectResizing : true,
resize_enabled : false,
shiftEnterMode : CKEDITOR.ENTER_BR,
toolbarCanCollapse : false,
forcePasteAsPlainText : true
});
答案 1 :(得分:0)
脚本文件未加载或与jquery UI脚本等其他脚本冲突。