带有JQuery UI对话框的CKEditor - 第二次不显示

时间:2011-01-26 17:26:47

标签: jquery ckeditor

我正在尝试在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();
 });

2 个答案:

答案 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脚本等其他脚本冲突。