J'ai un groupe de champs de style "répéteur" sur une page d'options personnalisées. Il y a un éditeur visuel actif dans un état caché, et lorsque l'utilisateur clique sur "ajouter un nouveau", la ligne entière est clonée. J'ai ensuite besoin d'initialiser l'éditeur visuel dans la ligne clonée. Mon code:
$('.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});
});
});
Capture d'écran de l'interface:
Lorsque la page se charge, j'obtiens l'erreur de console:
TypeError non capturé: impossible de lire la propriété «onpageload» de non défini
Et bien sûr, l'éditeur ne fonctionne pas. Après avoir enregistré la page, cela fonctionne bien sûr, mais j'ai besoin qu'elle soit fonctionnelle lorsque la ligne est également ajoutée.