ckeditor和jquery UI对话框无法正常工作

时间:2012-02-22 17:21:43

标签: jquery jquery-ui ckeditor

我无休止地尝试着你解决了我一直在遇到的这种令人沮丧的情况。我想让ckEditor在jQuery UI对话框中工作。编辑器包含完美,它用ckeditor皮肤替换textarea,但我无法在内容块中编辑/添加内容。我现在看到的唯一可行的解​​决方案是,如果我点击编辑器中的“源代码”并取消它,我就可以向其中添加内容。

我的意见仅仅是<script type='text/javascript' src='ckeditor/ckeditor.js'></script>,我没有添加任何其他信息/代码。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

有同样的问题,

从模态中移除效果有助于: 删除了:

show: "scale",
hide: "puff",

现在我的电话看起来像这样:

$("#report").dialog({
        title: "<?php echo caption("REPORT_EDITOR"); ?>",
        bgiframe: true,
          autoOpen: false,
          width: 990,
          height: 620,
          modal: true,

          draggable: true,
          resizable: true,
          resizeStop: function(event, ui) {
              var y = $(event.target).height();
              repEditor.resize( "99%", y - 10 );
          },

          buttons: {
            'Close': function() {
              $(this).dialog('close');
            }
          } 
        });

答案 1 :(得分:2)

对于jQuery-UI(1.10 +)和jQuery(1.10 +)以及CKEditor 3.6的版本,this solution似乎有效:

_moveToTop: function( event, silent ) {
    var $parent = this.uiDialog.parent();
    var $elementsOnSameLevel = $parent.children();

    var heighestZIndex = 0;
    $.each($elementsOnSameLevel, function(index, element) {
        var zIndexOfElement = $(element).css('z-index');
        if (zIndexOfElement) {
            var zIndexOfElementAsNumber = parseInt(zIndexOfElement) || 0;
            if (zIndexOfElementAsNumber > heighestZIndex) {
                heighestZIndex = zIndexOfElementAsNumber;
            }
        }
    });
    var currentZIndex = this.uiDialog.css('z-index');

    var moved;
    if (currentZIndex >= heighestZIndex) {
        moved = false;
    } else {
        this.uiDialog.css('z-index', heighestZIndex + 1);
        moved = true;
    }

    if ( moved && !silent ) {
        this._trigger( "focus", event );
    }

    return moved;
}

您可以在线编辑文件(不推荐),也可以在jQuery-UI之后但在创建对话框之前加载的单独JS文件中覆盖默认的jQuery-UI功能。

$.widget("ui.dialog", $.ui.dialog, {
    _moveToTop: function( event, silent ) {
        //Logic from above
    }
});

答案 2 :(得分:0)

作为保持“节目”的替代方案“隐藏”动画,在“show”事件结束后使用完整的回调函数创建编辑器实例:“show”选项

$("#report").dialog({
    title: "<?php echo caption("REPORT_EDITOR"); ?>",
    bgiframe: true,
      autoOpen: false,
      width: 990,
      height: 620,
      modal: true,

      // start my suggestion
      show: {
          effect: "scale",
          complete: function() {
            $( "#selector" ).ckeditor();
          }
      },

      hide: "puff",
      // end my suggestion

      draggable: true,
      resizable: true,
      resizeStop: function(event, ui) {
          var y = $(event.target).height();
          repEditor.resize( "99%", y - 10 );
      },

      buttons: {
        'Close': function() {
          $(this).dialog('close');
        }
      } 
    });