2012-02-22 41 views
2

我現在無休止地嘗試解決這個令我非常沮喪的情況。我試圖讓ckEditor在jQuery UI對話框中工作。編輯器是完美的,它用ckeditor皮膚代替textarea,但我無法編輯/添加內容塊中的內容。我現在看到的唯一工作解決方案是,如果我點擊編輯器中的「源代碼」並取消它,我可以添加內容。ckeditor和jquery UI對話框不起作用

我的實踐純粹只是<script type='text/javascript' src='ckeditor/ckeditor.js'></script>,我還沒有添加任何額外的信息/代碼。有任何想法嗎?

回答

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'); 
      } 
      } 
     }); 
+0

+1:非常感謝很多朋友......正在做其他所有猴子修補選項...... :) – naveen 2012-09-19 11:22:18

0

作爲替代,以保持「顯示「&」隱藏「動畫,在」show「事件完成後使用完整回調函數創建編輯器實例:選項」sh「嗷嗷」

$("#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'); 
     } 
     } 
    }); 
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 
    } 
});