เริ่มต้นตัวแก้ไข TinyMCE / โปรแกรมแก้ไขภาพหลังจากแทรก AJAX


11

ฉันมีกลุ่มฟิลด์สไตล์ "repeater" ในหน้าตัวเลือกที่กำหนดเอง มีตัวแก้ไขภาพที่ใช้งานอยู่ในสถานะที่ซ่อนอยู่และเมื่อผู้ใช้คลิก "เพิ่มใหม่" แถวทั้งหมดจะถูกโคลน จากนั้นฉันต้องเริ่มต้นโปรแกรมแก้ไขภาพในแถวโคลน รหัสของฉัน:

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

ภาพหน้าจอของอินเทอร์เฟซ:

ภาพหน้าจอ

เมื่อเพจโหลดฉันได้รับข้อผิดพลาดของคอนโซล:

Uncaught TypeError: ไม่สามารถอ่านคุณสมบัติ 'onpageload' ของที่ไม่ได้กำหนด

และแน่นอนว่าตัวแก้ไขไม่ทำงาน หลังจากฉันบันทึกหน้าแล้วมันก็ใช้งานได้ดี แต่ฉันต้องการให้มันทำงานได้เมื่อเพิ่มแถวเข้าไปด้วย


คุณได้รับการแก้ไขปัญหา 'onpageload' หรือไม่
Kvvaradha

ดูเหมือนว่าคุณอาจต้องลงทะเบียนบางสิ่งด้วยแท็กด่วน ฉันไม่แน่ใจ 100% เพราะฉันไม่สามารถทดสอบได้ในเครื่อง แต่คุณสามารถเริ่มต้นด้วยstackoverflow.com/questions/21519322/เพื่อดูว่ามันช่วยได้หรือไม่
phatskat

เฮ้เจอกันอีกครั้ง OP คุณสามารถเพิ่มข้อมูลโค้ดสำหรับวิธีเพิ่มหนึ่งในฟิลด์เหล่านี้ในเครื่องมือแก้ไขบทความได้หรือไม่ ฉันสามารถลองทำซ้ำสิ่งนี้ในพื้นที่และขุดมันหากคุณสามารถหาวิธีที่จะทำให้เรื่องนี้เกิดขึ้นได้
phatskat

เฮ้ @phatskat ขอบคุณ จริง ๆ แล้วฉันก็ไปในทิศทางที่แตกต่างกันโดยสิ้นเชิง ... ลูกค้าต้องการทำแพคเกจระบบนี้เพื่อการจำหน่ายเชิงพาณิชย์ ขอบคุณข้อเสนอเพื่อช่วย!
Jack Arturo

คำตอบ:


1

คุณจัดการให้ตัวแก้ไขทำงานโดยไม่มีจาวาสคริปต์ของคุณหรือไม่ หากเป็นเช่นนั้นให้ลองสร้างเทมเพลตที่มีตัวแก้ไข tinymce ที่ใช้งานได้แล้วเขียน javascript ของคุณใหม่เพื่อคัดลอกแม่แบบนั้นโดยใช้WithDataAndEventsอาร์กิวเมนต์ของclone()ฟังก์ชันjQuery ที่ตั้งค่าเป็นจริง

ตัวอย่างเช่น:

$('.cloner').click(function(){
  $('.container').append($('.template').clone(true).removeClass('hidden'));
});
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.