Inicializar el editor / editor visual de TinyMCE después de insertar AJAX

11

Tengo un grupo de campos de estilo "repetidor" en una página de opciones personalizadas. Hay un editor visual activo en un estado oculto, y cuando el usuario hace clic en "agregar nuevo", se clona toda la fila. Entonces necesito inicializar el editor visual en la fila clonada. Mi código:

$('.repeater-add-new').click(function(event) {
    event.preventDefault();
    var target = $(this).data('repeater');
    $( '#' + target).find('.repeater-row:not(.clone) .repeater-content.in').collapse();
    var newRow = $( '#' + target + ' .repeater-row.clone' ).clone().appendTo( '#' + target + ' .repeater-row-wrapper' ).removeClass('clone');
    rebuildIndex(target);

    // Initialize editors if needed
    newRow.find('.wp-editor-wrap').each(function(index, el) {
        var ed_id = $(this).find('textarea').attr('id');

        tinymce.init(tinyMCEPreInit.mceInit[ed_id]);
        tinymce.execCommand('mceAddEditor', false, ed_id); 
        quicktags({id : ed_id});
    });
});

Captura de pantalla de la interfaz:

Cuando se carga la página, aparece el error de la consola:

  

TypeError no capturado: no se puede leer la propiedad 'onpageload' de undefined

Y por supuesto el editor no funciona. Por supuesto, después de guardar la página, funciona bien, pero necesito que sea funcional cuando se agrega la fila también.

    
pregunta Jack Arturo 10.08.2015 - 16:17

1 respuesta

1

¿Logró que el editor funcionara sin su javascript incluido? Si es así, intente crear una plantilla que incluya un editor de recursos en funcionamiento y luego vuelva a escribir su javascript para copiar esa plantilla utilizando el argumento WithDataAndEvents del jQuery La función clone() está establecida en verdadero.

Por ejemplo:

$('.cloner').click(function(){
  $('.container').append($('.template').clone(true).removeClass('hidden'));
});
    
respondido por el Fleuv 11.06.2018 - 14:37

Lea otras preguntas en las etiquetas