Ну, потратил 3 часа на ту же проблему сегодня ... с Jquery UI 1.10 и TinyMCE 4.
Проблема в том, что при отсутствии выбора содержимое панели ajax не удаляется из DOM, а просто скрывается. Это означает, что текстовая область может быть более 1 раза в DOM (навигация по панелям). => Смерть крошечного MCE ...
В Jquery 1.10 нет события, чтобы поймать "невыбранную панель". Вы должны иметь дело с событием до загрузки.
Таким образом, идея состоит в том, чтобы очистить каждую «загруженную ajax» панель перед загрузкой панели. Код:
$( "#list_onglet_lecteur" ).tabs({
beforeLoad:
function( event, ui ) {
$("#list_onglet_lecteur div[role=tabpanel]").each(function(){
if($(this).attr("id") != "list_onglet_lecteur-accueil")$(this).empty();
});
$(ui.panel).html('<div style="width:100%;text-align:center"><img src="/images/ajax_loader_big.gif" alt=""></img><br />Chargement de l\'onglet</div>');
ui.jqXHR.error(function() {
ui.panel.html("Echec du chargement de l'onglet. Merci d'actualiser la page.");
});
}
})
Заметьте, я не нашел способа провести различие между "панелями, загруженными ajax" и "предварительно загруженными панелями" ...
Это позор, потому что вы должны добавить каждый код "предварительно загруженной панели" в код ...
В любом случае, это решает крошечную проблему MCE. Нет необходимости инициировать событие загрузки и использовать команды mceRemoveControl / mceAddControl.
Просто запустите редактирование tinyMCE в представлении «Панель загрузки с ajax»:
$(function() {
tinyMCE.init({
height : 300,
mode : "specific_textareas",
editor_selector : "mceEditor",
theme : "modern",
language : 'fr_FR',
plugins: [
"advlist autolink lists link image charmap print preview anchor",
"searchreplace visualblocks code fullscreen",
"insertdatetime media contextmenu paste moxiemanager"
],
toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image"
});
});