使用sortable.js时禁用bootstrap wysihtml5

时间:2015-01-19 17:19:14

标签: javascript jquery twitter-bootstrap jquery-ui-sortable wysihtml5

我有一组可排序的div,每个div都包含我启用Bootstrap WYSIHTML5的文本区域。这一切都正常,直到我尝试排序,然后我丢失了textarea的内容。

我的解决方案是在sortable的start()事件上禁用WYSIWYG,然后在update()上重新启用。但是,我在代码中看起来很高和很低,并且无法在GitHub页面或其他地方找到它。 https://github.com/bootstrap-wysiwyg/bootstrap3-wysiwyg

有谁知道这可以找到的地方,或者有经验知道代码是什么?

为了记录,我已经尝试了这个,但是得到了一个未知的对象控制台错误:

$('textarea').data('wysihtml5').editor.composer.disable();

1 个答案:

答案 0 :(得分:3)

我有同样的问题,这个解决方案似乎对我有用。问题是可排序的功能似乎擦除了iframe中的body标签。 为了解决这个问题,我在排序开始时将iframe正文标记存储在隐藏字段中,然后将其放回iframe中。

        $(".contentPanel").sortable({
            disabled: false,
            revert: true,
            start: function (e, ui) {
                $(document.getElementsByTagName("iframe")).each(function () {
                    $(".hdHtmlBag", $(this).parent()).val(this.contentWindow.document.body.outerHTML);
                });
            },
            stop: function (e, ui) {
                $(document.getElementsByTagName("iframe")).each(function () {
                    this.contentWindow.document.body.outerHTML = $(".hdHtmlBag", $(this).parent()).val();
                });
            }
        });

希望这对某人有帮助。