Score:0

ฉันจะแนบกิจกรรม JS กับแถวมุมมองหลายแถวได้อย่างไร

ธง pl

ฉันกำลังสร้างฟิลด์มุมมองที่กำหนดเองและต้องการให้มี JS แนบมากับฟังก์ชันการคลิก เมื่อฉันได้รับผลการดูหนึ่งรายการ มันทำงานได้อย่างสมบูรณ์ แต่เมื่อฉันมีผลลัพธ์หลายรายการ มันจะแนบกับหนึ่งในนั้นเท่านั้น ฉันจะแนบสิ่งนี้กับแถวผลลัพธ์ทั้งหมดได้อย่างไร

ด้านล่างนี้คือรหัสสำหรับการแสดงฟิลด์และ js ที่แนบมา ความช่วยเหลือใด ๆ ที่ชื่นชม

<?php

/**
 * @ไฟล์
 * ประกอบด้วย \Drupal\msul_views_alert_management\Plugin\views\area\alertManagement
 */

เนมสเปซ Drupal\msul_views_alert_management\Plugin\views\field;

ใช้ Drupal\Core\Form\FormStateInterface;
ใช้ Drupal\views\Render\ViewsRenderPipelineMarkup;
ใช้ Drupal\views\ResultRow;
ใช้ Drupal\views\ViewExecutable;
ใช้ Drupal\views\Plugin\views\field\FieldPluginBase;

/**
 * กำหนดปลั๊กอินฟิลด์มุมมอง
 *
 * @ingroup views_field_handlers
 *
 * @ViewsField("alertFieldManagement")
 */
class alertFieldManagement ขยาย FieldPluginBase {

  /**
   * {@inheritdoc}
   */
  ฟังก์ชั่นสาธารณะแสดงผล (ResultRow $values) {
    $output = อาร์เรย์();
    $uuid=((อาร์เรย์)($values->_entity))[chr(0).'*'.chr(0).'values']['uuid']['x-default'];
    $body=((อาร์เรย์)($values->_entity))[chr(0).'*'.chr(0).'values']['body']['x-default'];
    if(!isset($_COOKIE['EUA-'.$uuid]) || $_COOKIE['EUA-'.$uuid]!="Hidden"){
      $เอาท์พุท = [
        'userAlert' => [
          '#type' => 'คอนเทนเนอร์',
          '#attributes' => [
            'คลาส' => ['การแจ้งเตือนผู้ใช้'],
          ]
          'userAlertClose' => [
            '#type' => 'คอนเทนเนอร์',
            '#attributes' => [
              'uuid' => $uuid,
              'class' => ['ผู้ใช้-alert-close-button'],
            ]
            'tempButton' => ['#markup' => 'X'],
          ]
          'ข้อความแจ้งเตือน' => [
            '#markup' => check_markup($body[0]['value'],$body[0]['format']),
          ]
        ]
        '#attached' => [
          'library' => ['msul_views_alert_management/alert_field_management-js'],
          'drupalSettings' => [
            'msul_views_alert_management' => [
              'uuid' => $uuid,
            ]
          ]
        ]
      ];
    }
    ส่งคืน $output;
  }

//... รหัสอื่น ๆ ที่นี่ ...

}
( ฟังก์ชัน ($, Drupal, drupalSettings){
      uuid = drupalSettings.msul_views_alert_management.uuid;

      ในขณะที่($('[uuid="'+uuid+'"]').ความยาว > 1){
        $('[uuid="'+uuid+'"]').last().closest(".views-row").remove();
      }

      $('[uuid="'+uuid+'"]').บน('คลิก',
        การทำงาน() {
          $(นี้).closest(".views-row").remove();
          document.cookie = "EUA-"+uuid+"=Hidden;path=/;";
        }
      );
})(jQuery, Drupal, drupalSettings)
pl flag
ฉันจะทิ้งคำถามไว้เพราะฉันยังสงสัยเกี่ยวกับคำตอบ แต่ฉันตัดสินใจใช้เส้นทางอื่นเพื่อแก้ปัญหาและแนบ js เข้ากับมุมมองทั้งหมด (พร้อมตรรกะเพื่อเพิ่มตัวจัดการคลิกลงในแต่ละฟิลด์) แทนที่จะแนบ ไปยังแต่ละฟิลด์

โพสต์คำตอบ

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