Плавающая панель инструментов tinymce

Я создал внешнюю плавающую панель инструментов для tinymce с помощью jQuery.

tinyMCE.init({

    ...
    theme_advanced_toolbar_location : "external",
    theme_advanced_toolbar_align : "left",
    theme_advanced_statusbar_location : "top",
    theme_advanced_resizing : false,

    // make toolbar dragable
    handle_event_callback : function(e) {
        if (e.type == 'click') {
            $('.mceExternalToolbar').draggable();
        }
        return true;
    },
    ...
});

Это работает, но каждый раз, когда я нажимаю textarea, панель инструментов возвращается к верхней части textarea.

Если щелкнуть в textarea, переместить панель инструментов, затем щелкнуть назад в textarea, панель инструментов вернется в верхнюю часть textarea.

Любые идеи, почему это может происходить и как это остановить?


person todd    schedule 05.12.2012    source источник


Ответы (1)


Это происходит потому, что код панели инструментов (editor_template.js) позиционирует ее каждый раз, когда редактор обрабатывает событие перемещения мыши вверх.

Мне удалось обойти это, изменив идентификатор внешней панели инструментов:

if (e.type == "click")
{
   var oldid = $(".mceExternalToolbar").attr("id");
   $(".mceExternalToolbar").attr("id", oldid+"_new");
   $(".mceExternalToolbar").draggable();
}

Это, вероятно, имеет некоторые другие последствия, но, похоже, это работает на моих ограниченных тестах.

person garlon4    schedule 18.03.2013