我对 .sortable 和所有 iframe 文本编辑器有一个严重的问题。
我有以下示例代码:
html:
<div id="content" style="height: 400px;">
<div><textarea></textarea></div>
<div><textarea></textarea></div>
</div>
脚本:
$("#content").sortable();
这使得两个文本区域可拖动。到这里为止都没有问题...现在让我们添加所见即所得编辑器...(我尝试了很多 ckeditor、tinyedit、tinymce、elrte 等)
作为一个例子,让我们用tinyMCE来做:
function ini(){
tinymce.init({
menubar : false,
toolbar1: "bold | link",
selector: "textarea",
});
好吧,这就是问题出现的地方。如果我知道稍微拖放一个文本区域,编辑器字段就会自行禁用。
直到这一刻我尝试了什么: - 我向可排序方法添加了开始和停止事件,但没有成功。 - 我尝试了frameFix: true,行为上也没有任何差异。
有人有一些提示或解决方案吗?
谢谢 切尔维西亚
最佳答案
我想出了一个解决办法。这是一个完整的解决方法,但它有效:)
所以基本上我所做的是将每个文本编辑器字段的内容保存到一个数组中,并在使用可排序方法后将其放回编辑器。
所以看起来像:
$("#content").sortable({
start: function(){
newEditors = new Array();
for(i=0; i < $("textarea").length; i++){
var content = tinyMCE.get(tinyMCE.editors[i].id).getContent();
var id = tinyMCE.editors[i].id;
newEditors[i] = {"id":id, "content":content};
}
tinyMCE.remove(); //as a fix for FF
},
stop: function(){
ini(); //re-initiate the tinymce again (if you don't do that, the field wont be editable)
for(var nr in newEditors){
tinyMCE.get(newEditors[nr].id).setContent(newEditors[nr].content);
}
}
});
因此,如果某人遇到同样的问题并找到其他方法来解决它,那么也很高兴看到这些解决方案。
谢谢 切尔维西亚
关于iframe - jQuery UI .sortable 和 iFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22097833/