AJAX eklendikten sonra TinyMCE düzenleyicisini / görsel düzenleyiciyi başlat


11

Özel seçenekler sayfasında bir "tekrarlayıcı" tarzı alan grubum var. Gizli bir durumda etkin bir görsel düzenleyici vardır ve kullanıcı "yeni ekle" yi tıklattığında tüm satır klonlanır. Sonra klonlanmış satırda görsel düzenleyiciyi başlatmam gerekiyor. Kodum:

$('.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});
    });
});

Arayüzün ekran görüntüsü:

Ekran görüntüsü

Sayfa yüklendiğinde konsol hatası alıyorum:

Yakalanmamış TypeError: undefined öğesinin 'onpageload' özelliği okunamıyor

Ve elbette editör çalışmıyor. Sayfayı kaydettikten sonra elbette iyi çalışıyor, ancak satır da eklendiğinde işlevsel olması gerekiyor.


'onpageload' sorununa çözüm buldunuz mu
Kvvaradha

Bazı şeyleri hızlı etiketlerle kaydetmeniz de gerekebilir. Bunu yerel olarak test edemediğim için% 100 emin değilim, ancak bunun hiç yardımcı olup olmadığını görmek için stackoverflow.com/questions/21519322/… ile başlayabilirsiniz .
Ocak'ta

Hey, yine bununla karşılaştı. OP, bu alanlardan birini yazı düzenleyicisine nasıl ekleyeceğinize ilişkin bir pasaj ekleyebilir misiniz? Bunu yerel olarak çoğaltmayı deneyebilir ve bunu kendim ayağa kaldırmanın bir yolunu sağlayabilirseniz kazabilirim.
phatskat

Hey @phatskat, teşekkürler. Aslında tamamen farklı bir yöne gidiyordum ... müşteri bu sistemi ticari satış için paketlemek istedi, bu yüzden her şeyi ACF'siz özel bir arayüz kullanarak yeniden yazdık. Yardım teklifine teşekkür ederiz!
Jack Arturo

Yanıtlar:


1

JavaScript'iniz olmadan editörün çalışmasını sağladınız mı? Öyleyse, çalışan bir tinymce düzenleyicisi içeren bir şablon oluşturmaya çalışın WithDataAndEventsve jQuery clone()işlevinin true olarak ayarlanmış argümanını kullanarak bu şablonu kopyalamak için javascriptinizi yeniden yazın .

Örneğin:

$('.cloner').click(function(){
  $('.container').append($('.template').clone(true).removeClass('hidden'));
});
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.