我无休止地尝试着你解决了我一直在遇到的这种令人沮丧的情况。我想让ckEditor在jQuery UI对话框中工作。编辑器包含完美,它用ckeditor皮肤替换textarea,但我无法在内容块中编辑/添加内容。我现在看到的唯一可行的解决方案是,如果我点击编辑器中的“源代码”并取消它,我就可以向其中添加内容。
我的意见仅仅是<script type='text/javascript' src='ckeditor/ckeditor.js'></script>
,我没有添加任何其他信息/代码。有什么想法吗?
答案 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');
}
}
});