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. Luego 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 consola:
TypeError no capturado: no se puede leer la propiedad 'onpageload' de undefined
Y, por supuesto, el editor no funciona. Después de guardar la página, funciona bien, por supuesto, pero también necesito que sea funcional cuando se agrega la fila.
Respuestas:
¿Conseguiste hacer que el editor funcionara sin tu javascript incluido? Si es así, intente crear una plantilla que incluya un editor de tinymce que funcione y luego reescriba su javascript para copiar esa plantilla usando el
WithDataAndEvents
argumento de laclone()
función jQuery establecida en verdadero.Por ejemplo:
fuente