jQuery UI .sortable和iFrames

时间:2014-02-28 14:25:58

标签: iframe jquery-ui-sortable

我有一个严重的问题.sortable和所有iframe文本都在那里。

我有以下示例代码:

HTML:

<div id="content" style="height: 400px;">
  <div><textarea></textarea></div>
  <div><textarea></textarea></div>
</div>

脚本:

$("#content").sortable();

这使得两个textareas可以拖拽。直到这里没有问题...现在让我们添加所见即所得的编辑器...(我尝试了很多ckeditor,tinyedit,tinymce,elrte等等)

作为一个例子,我们可以使用tinyMCE:

function ini(){
    tinymce.init({
        menubar : false,
        toolbar1: "bold | link",
        selector: "textarea",
    });

好的,这就是问题在增加的地方。如果我知道拖放一个textarea只是一点点,编辑器字段将禁用自己。

到目前为止我尝试了什么: - 我在可排序方法中添加了启动和停止事件,但没有成功。 - 我尝试了frameFix:也没有任何行为上的差异。

任何有提示或解决方案的人?

THX Cervisias

1 个答案:

答案 0 :(得分:2)

我找到了解决方案。它是一个完整的解决方法,但它的工作原理:)

所以基本上我正在做的是将每个texteditorfield的内容保存到一个数组中,并在使用sortable方法后将其放回编辑器。

所以它看起来像:

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

    }
});

因此,如果sb遇到同样的问题,并想出另一种方法来解决它,那么也很高兴看到这些解决方案。

THX Cervisias