Ich habe eine Feldgruppe im Repeater-Stil auf einer Seite mit benutzerdefinierten Optionen. Es gibt einen aktiven visuellen Editor in einem versteckten Zustand, und wenn der Benutzer auf "Neu hinzufügen" klickt, wird die gesamte Zeile geklont. Ich muss dann den visuellen Editor in der geklonten Zeile initialisieren. Mein 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});
});
});
Screenshot der Benutzeroberfläche:
Wenn die Seite geladen wird, wird der Konsolenfehler angezeigt:
Nicht erfasster TypeError: Die Eigenschaft 'onpageload' von undefined kann nicht gelesen werden
Und natürlich funktioniert der Editor nicht. Nachdem ich die Seite gespeichert habe, funktioniert sie natürlich einwandfrei, aber sie muss funktionsfähig sein, wenn die Zeile ebenfalls hinzugefügt wird.