Điểm:0

Làm cách nào để đính kèm sự kiện JS vào nhiều hàng dạng xem

lá cờ pl

Tôi đang tạo một trường chế độ xem tùy chỉnh và cần nó có JS được đính kèm với chức năng nhấp chuột. Khi tôi nhận được một kết quả lượt xem, nó hoạt động hoàn hảo, nhưng khi tôi có nhiều kết quả, nó chỉ đính kèm với một trong số chúng. Làm cách nào để đính kèm điều này vào tất cả các hàng kết quả?

Dưới đây là mã để hiển thị trường và js được đính kèm. Bất kỳ trợ giúp được đánh giá cao.

<?php

/**
 * @tập tin
 * Chứa \Drupal\msul_views_alert_manager\Plugin\views\area\alertManagement.
 */

không gian tên Drupal\msul_views_alert_manager\Plugin\views\field;

sử dụng Drupal\Core\Form\FormStateInterface;
sử dụng Drupal\views\Render\ViewsRenderPipelineMarkup;
sử dụng Drupal\views\ResultRow;
sử dụng Drupal\views\ViewExecutable;
sử dụng Drupal\views\Plugin\views\field\FieldPluginBase;

/**
 * Xác định plugin trường xem.
 *
 * @ingroup lượt xem_field_handlers
 *
 * @ViewsField("alertFieldManagement")
 */
lớp alertFieldManagement mở rộng FieldPluginBase {

  /**
   * {@inheritdoc}
   */
  chức năng công khai kết xuất (ResultRow $values) {
    $ đầu ra = mảng();
    $uuid=((mảng)($values->_entity))[chr(0).'*'.chr(0).'values']['uuid']['x-default'];
    $body=((array)($values->_entity))[chr(0).'*'.chr(0).'values']['body']['x-default'];
    if(!isset($_COOKIE['EUA-'.$uuid]) || $_COOKIE['EUA-'.$uuid]!="Ẩn"){
      $ đầu ra = [
        'thông báo người dùng' => [
          '#type' => 'thùng chứa',
          '#thuộc tính' => [
            'lớp' => ['cảnh báo người dùng'],
          ],
          'userAlertClose' => [
            '#type' => 'thùng chứa',
            '#thuộc tính' => [
              'uuid' => $uuid,
              'lớp' => ['nút đóng cảnh báo người dùng'],
            ],
            'tempButton' => ['#markup' => 'X'],
          ],
          'văn bản cảnh báo' => [
            '#markup' => check_markup($body[0]['value'],$body[0]['format']),
          ],
        ],
        '#đính kèm' => [
          'thư viện' => ['msul_views_alert_manager/alert_field_man Quản lý-js'],
          'drupalSettings' => [
            'msul_views_alert_man Quản lý' => [
              'uuid' => $uuid,
            ],
          ],
        ],
      ];
    }
    trả lại đầu ra $;
  }

//... mã khác ở đây ...

}
(hàm ($, Drupal, drupalSettings){
      uuid = drupalSettings.msul_views_alert_man Quản lý.uuid;

      while($('[uuid="'+uuid+'"]').length > 1){
        $('[uuid="'+uuid+'"]').last().closest(".views-row").remove();
      }

      $('[uuid="'+uuid+'"]').on('click',
        chức năng() {
          $(this).gần nhất(".views-row").remove();
          document.cookie = "EUA-"+uuid+"=Hidden;path=/;";
        }
      );
})(jQuery, Drupal, drupalSettings)
lá cờ pl
Tôi sẽ để lại câu hỏi vì tôi vẫn tò mò về câu trả lời, nhưng tôi đã quyết định thực hiện một cách khác để giải quyết vấn đề và đính kèm js vào toàn bộ chế độ xem (với logic để thêm trình xử lý nhấp chuột vào từng trường) thay vì đính kèm nó vào các lĩnh vực riêng lẻ.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.