Score:0

ต้องการความช่วยเหลือเกี่ยวกับการเรียก AJAX ภายใน Drupal.behaviors

ธง in

ฉันมีปัญหาในการทำให้โค้ดต่อไปนี้ทำงานได้อย่างถูกต้อง:

(ฟังก์ชัน($) {
'ใช้อย่างเข้มงวด';
Drupal.behaviors.mybehavior = {
    แนบ: ฟังก์ชัน (บริบท การตั้งค่า) {

        // คลิกที่ภาพตัวยึด ซึ่งควรเปิดแบบฟอร์มจากนั้น
        // แทนที่รูปภาพด้วยทรัพยากรวิดีโอ (เนื้อหาที่มีรั้วรอบขอบชิด)
        $(document).once('abc').on('click', '.image_class', function() {
            var fid = 123 // รับรหัสเอนทิตีของแบบฟอร์มจากแอตทริบิวต์ข้อมูล
            var vid = 456 // รับ ID ทรัพยากรจากแอตทริบิวต์ข้อมูล

            // การเรียก AJAX นี้โหลดฟอร์มและส่งกลับ OpenModalDialogCommand
            // มีแบบฟอร์ม
            Drupal.ajax({
                URL: '/load/a/form/' + fid
            }).ดำเนินการ().เสร็จสิ้น(ฟังก์ชั่น() {
                var id = // รับรหัสแบบฟอร์ม Marketo
                // โหลดแบบฟอร์มจาก Marketo
                MktoForms2.loadForm ('cname', '123-123-123', fid, ฟังก์ชัน (แบบฟอร์ม) {
                    form.onSuccess (ฟังก์ชัน (จ) {
                        form.getFormElem().ซ่อน();

                        // หากส่งแบบฟอร์มสำเร็จ ให้โหลดวิดีโอ
                        // ทรัพยากรและวางไว้บนหน้าด้วย HTMLCommand
                        Drupal.ajax({
                            url: '/load/a/video/' + วีดีโอ
                        }).ดำเนินการ().เสร็จสิ้น(ฟังก์ชั่น() {
                            // CSS/การล้างข้อมูลพื้นฐานทำงานที่นี่
                        });
                        กลับเป็นเท็จ;
                    });
                });
            })
        });
    }
}
})(jQuery);

กระบวนการทั้งหมดทำงานได้อย่างถูกต้อง แต่จะทำซ้ำการเรียก AJAX ก่อนหน้านี้ในแต่ละขั้นตอน

ตัวอย่างเช่น เมื่อฉันคลิกตัวเลือกเริ่มต้น .image_class การโทร AJAX ที่โหลดแบบฟอร์มใช้งานได้ดี

เมื่อฉันกรอกแบบฟอร์มสำเร็จ การเรียก AJAX ครั้งที่สองจะเริ่มทำงาน แต่ดูเหมือนว่าจะเรียกการเรียก AJAX ครั้งแรกอีกครั้งอย่างมีประสิทธิภาพ โดยวางแบบฟอร์มที่เพิ่งกรอกเสร็จและลบกลับบนหน้า เปิดกล่องโต้ตอบอีกครั้ง

ทุกอย่างทริกเกอร์อย่างถูกต้อง ฉันไม่สามารถหาวิธีทำให้กระบวนการนี้ทำงานโดยไม่ทริกเกอร์การเรียก AJAX ก่อนหน้าทั้งหมดอีกครั้ง

ขอบคุณ!

leymannx avatar
ne flag
พารามิเตอร์ขาดหายไปจากจุดเริ่มต้น `(ฟังก์ชัน ($, Drupal, ครั้ง) {` และจุดสิ้นสุด `})(jQuery, Drupal ครั้ง); ` ตรวจสอบให้แน่ใจว่าคุณได้เพิ่มเป็นการขึ้นต่อกันในนิยามไลบรารีของคุณ ทำให้ดูเหมือนตัวอย่างในเอกสารมากขึ้น: https://www.drupal.org/docs/drupal-apis/javascript-api/javascript-api-overview

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา