Рейтинг:0

Как я могу заставить этот код JavaScript выполняться, когда модуль BigPipe включен?

флаг bj

Я продолжаю бороться с выполнением JavaScript, когда мне нужно настроить таргетинг на элемент DOM, который добавляется через модуль BigPipe, когда я вхожу в систему на своем сайте Drupal.

Следующий код выполняется, когда я не вошел в систему, но никогда не выполняется, когда я вхожу в систему.

(функция ($) {
  'использовать строгий';

  Drupal.behavior.bpBlockTest = {
    прикрепить: функция (контекст, настройки) {
      $('.my-block', контекст).once('bp-block-testing').each(function () {
        вар $myBlock = $(этот);
        var $addOn = $('<span>дополнение</span>');
        $addOn.appendTo($myBlock);
      });
    }
  }

}(jQuery));
Рейтинг:2
флаг cn

Для текущей версии Drupal это правильный способ запуска Javascript (включая jQuery, Drupal и новую библиотеку Drupal Once):

(функция ($, Drupal, один раз) {
  Drupal.behaviors.myModuleBehavior = {
    прикрепить: функция (контекст, настройки) {
      один раз ('myCustomBehavior', 'input.myCustomBehavior', контекст). forEach (функция (элемент) {
        // Применяем эффект myCustomBehaviour к элементам только один раз.
      });
    }
  };
})(jQuery, Drupal, один раз);

MODULE.libraries.yml или THEME.libraries.yml:

Фубар:
  js:
    js/foobar.js: {}
  зависимости:
    - ядро/друпал
    - ядро/jquery
    - ядро/один раз

От https://www.drupal.org/docs/drupal-apis/javascript-api/javascript-api-обзор

Смотрите также https://www.drupal.org/node/3158256

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.