Score:-2

Jquery เพื่อย้ายฟิลด์เหนือตาราง - เปลี่ยนแปลงระหว่างการรีเฟรชหน้า

ธง in

ฉันมีรหัส jquery ด้านล่างเพื่อย้ายฟิลด์แบบเลือกหลายรายการและปุ่มเหนือตาราง

jQuery(เอกสาร).พร้อม(ฟังก์ชั่น($){
  $('#views-form-resources-block-1 .form-item-ka-types').insertBefore($('#views-form-myblock-block-1 table'));
  $('#views-form-resources-block-1 #edit-actions--2').insertAfter($('#views-form-myblock-block-1 .form-item-ka-types'));
});

ในโค้ดนี้ ฉันกำลังย้ายฟิลด์ ka-types เหนือมุมมอง myblock การแสดงรูปภาพดังต่อไปนี้:

ป้อนคำอธิบายรูปภาพที่นี่

รหัสนี้ทำงานได้ดีเมื่อฉันโหลดหน้าเว็บในตอนแรก แต่เมื่อฉันรีเฟรชหน้า เลือกหลายรายการลงมาและแสดงข้อผิดพลาด อีกครั้งเมื่อฉันรีเฟรชหน้ามันใช้งานได้ดี ไม่แน่ใจว่าปัญหาคืออะไร ความช่วยเหลือใด ๆ เกี่ยวกับวิธีการแก้ไขนี้

Kevin avatar
in flag
Javascript ไม่ได้เขียนในลักษณะที่ Drupal จะแนบเมื่อ dom เปลี่ยนแปลง ดังนั้นเมื่อมีการสร้างแบบฟอร์มใหม่ สิ่งนี้จะหายไป มันอาจจะง่ายกว่าที่จะแทนที่เทมเพลต Views นี้เพื่อย้ายตัวกรองและบังคับด้วย jquery
Kevin avatar
in flag
หรือตรวจสอบเอกสาร Drupal เกี่ยวกับพฤติกรรมของ Drupal
sonfd avatar
in flag
ฉันขอแนะนำให้ทำเช่นนี้กับเทมเพลตของ yourjavas view การเปลี่ยนแปลง JavaScript เช่นนี้จะทำให้เนื้อหาของหน้าเปลี่ยนไปซึ่งไม่ใช่ UX ที่ดีสิ่งนี้อาจส่งผลเสียต่อ SEO ของคุณ เนื่องจากคะแนน [Cumulative Layout Shift (CLS)](https://web.dev/cls/) ของหน้าเป็นปัจจัยหนึ่ง
Hermann Schwarz avatar
cn flag
คุณช่วยบอกหน่อยได้ไหม การรีเฟรชครั้งแรกหมายถึงอะไร ส่งแบบฟอร์ม? ดังนั้น DOM อาจดูแตกต่างออกไปเล็กน้อยหลังจากส่ง
Hermann Schwarz avatar
cn flag
คุณยังสามารถตรวจสอบได้ว่าคอนโซลเครื่องมือเว็บแสดงข้อผิดพลาด JS หรือไม่ ดังนั้น JS ของคุณจะไม่ถูกดำเนินการหลังจากส่งแบบฟอร์ม (รีเฟรชครั้งแรก)
Jiah avatar
in flag
ฉันสามารถบรรลุสิ่งนี้ได้โดยใช้พฤติกรรมของ Drupal
Score:1
ธง in

ด้านล่างนี้เป็นวิธีแก้ปัญหาของฉันสำหรับสิ่งนี้:

(ฟังก์ชัน ($, Drupal) {
  Drupal.behaviors.searchResults = {
    แนบ: ฟังก์ชัน () {
      $('#views-form-resources-block-1 .form-item-ka-types')
        .insertBefore($('#views-form-myblock-block-1 ตาราง'));
      $('#views-form-resources-block-1 #edit-actions--2')
        .insertAfter($('#views-form-myblock-block-1 .form-item-ka-types'));
    }
  };
}(jQuery, Drupal));

@เควินถูกต้อง เมื่อฟอร์มสร้างใหม่ การเปลี่ยนแปลง DOM จะสูญหายไป เข้าใจพฤติกรรม Drupal ได้ดีขึ้น ลิงค์มีคำอธิบายและตัวอย่างของพฤติกรรม Drupal ที่ยอดเยี่ยม

โพสต์คำตอบ

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