2011-11-16 76 views
3

我使用多个CKEditor实例与CMS,并添加了拖放多个框的能力,以便为用户重新排序内容,以便他们可以选择其显示在前端。CKEDITOR和jQuery的拖放使内容消失

拖放工作并将内容正确放置在网站的前端,但内容从CKEditor中消失。

它并没有将它从视图中隐藏起来,而是在检查时发现CKEditor的html,head和body标签被清空。

之前有人遇到过这种情况,或者知道为什么?

感谢

回答

2

我有同样的问题,并注意到CKEditor的使用为格式文本的显示的iframe中。看起来Iframes干扰了jquery拖放代码(它们也拦截事件,这是我的理解)。如果您在使用jQuery可拖动()(而不是排序()或调整大小()),那么你可以使用内置的所谓iframefix配置变量,它看起来是这样的:如果你使用的是

$(".selector").draggable({ iframeFix: true }); 

可排序(像我一样)或可调整大小的,你必须推出自己的修复程序(或找到一个现有的非jui)。我会在这里发布解决方案,一旦我得到它的工作。我正在努力解决这个初学者的问题:Trouble Using JQuery UI.Resizable() and UI.Draggable() with an iFrame,

2

如果您使用可拖动+可排序,也许您想卸载编辑器并稍后重新加载。这对我有效:

function unloadEditors() { 
    $('textarea.editor:hidden').each(function(){ 
     var tagId = $(this).attr('id'); 
     CKEDITOR.instances[ tagId ].destroy(); 
    }); 
} 

function loadEditors() { 
    $('textarea.editor:visible').each(function(){ 
     var tagId = $(this).attr('id'); 
     CKEDITOR.replace(tagId); 
    }); 
} 

$(document).ready(function(){ 

$("#blocks").sortable({ 
    revert: true, 
    start: function(event,ui){ 
    unloadEditors(); 
    }, 
    stop: function(event,ui){ 
    loadEditors(); 
    } 
}); 
}); 
+0

此解决方案使ckeditor在拖动过程中消失。更好的东西? – coorasse