как повторно инициализировать TinyMCE после загрузки ajax текстовой области - PullRequest
1 голос
/ 04 мая 2020

Я пытаюсь повторно связать tinyMCE с текстовой областью, которая создается с помощью ajax. Мой tinymce выглядит следующим образом:

tinyMCE.init({
    selector : "textarea",
    plugins: "emoticons link",  
    menubar: false,
    toolbar: 'undo redo | bold italic underline | fontsizeselect | link | emoticons',    
    height: 240,
    force_br_newlines : true,
    force_p_newlines : false,
    forced_root_block : '',
    paste_as_text: true,

});

My ajax для отправки данных:

$('body').on('submit', '.comment_form', function (e) {
    e.preventDefault();
    tinyMCE.triggerSave(); // save TinyMCE instances before sending data
    ....
    $.ajax({
        url: 'comment.php',
        type: 'POST',
        data: {             
                comment_name:comment_name,              
                comment:comment,                                                                    
                },
        beforeSend: function(){
            tinyMCE.remove(); // remove tiny mce form textarea
        },      

        success: function(data){

            $('.result').html(data);            
            $('.modal').modal('hide'); // close modal   

            $(".comments-body").load(" .comments-body > *"); // reload div comments-body from comments  


        },
        complete:function(){
            tinyMCE.init(); // rebind tinymce to textarea       
        }
    });

});



Div с классом comments-body имеет несколько форм с текстовыми областями и перезагружается после успеха. Но tinymce больше не привязывается после этой перезагрузки!

Я знаю, что должен использовать tinyMCE.remove(); и tinyMCE.init();, и я попробовал это в своих ajax beforeSend и complete, но безрезультатно. Кто-нибудь знает, что я делаю не так? Я использую бесплатный API Tinymce 5

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...