Отключите начальную загрузку wysihtml5 при использовании sortable.js

У меня есть набор сортируемых элементов div, каждый из которых содержит текстовые области, для которых я включил Bootstrap WYSIHTML5. Все это работает нормально, пока я не попытаюсь отсортировать, а затем потеряю содержимое текстовой области.

Мое решение состоит в том, чтобы отключить WYSIWYG в событии start() сортируемого, а затем снова включить в update(). Тем не менее, я искал код для этого повсюду и не мог найти его нигде на странице GitHub или где-либо еще. https://github.com/bootstrap-wysiwyg/bootstrap3-wysiwyg

Кто-нибудь знает, где это можно найти, или имеет опыт, чтобы узнать, каким будет код?

Для справки, я пробовал это, но получил ошибку консоли неизвестного объекта:

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

person Adam Moss    schedule 19.01.2015    source источник
comment
Вы когда-нибудь находили решение этой проблемы?   -  person HuwD    schedule 30.01.2015


Ответы (1)


У меня была такая же проблема, и это решение, похоже, работает для меня. Проблема в том, что функция сортировки стирает тег body в iframe. Чтобы обойти это, я сохраняю тег тела 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();
                });
            }
        });

Надеюсь, это кому-то поможет.

person HuwD    schedule 30.01.2015
comment
Обратите внимание, что $(.hdHtmlBag) является скрытым вводом в родительском элементе iframe. - person Vladimir Cherepinskiy; 19.06.2015