Drupal 8 Drupal.behaviors 没有 jquery

Drupal 8 Drupal.behaviors without jquery

有没有办法在 Drupal 8 中不调用 jquery 就可以将 Drupal 行为添加到主题?

这是教程展示的内容:

(function ($, Drupal) {
  Drupal.behaviors.myModuleBehavior = {
    attach: function (context, settings) {
      $('input.myCustomBehavior', context).once('myCustomBehavior').each(function () {
        // Apply the myCustomBehaviour effect to the elements only once.
      });
    }
  };
})(jQuery, Drupal);

但我想在不调用 jquery 的情况下使用纯 js,如下所示:

(function (Drupal) {
  Drupal.behaviors.myModuleBehavior = {
    attach: function (context, settings) {
      context.querySelector('input.myCustomBehavior').classList.add('processed');
    }
  };
})(Drupal);

我知道模块可能会自行调用 jquery,但我仍然希望尽可能将其从我的脚本中删除,并在 ajax 事件后仍然保留它 运行。

谢谢

你试过了吗?

我也不知道这个,所以去调查了。

Drupal 似乎不再依赖 jQuery 的 document.ready 来激发行为。
正如 this change record 中所见。

这让我相信您发布的第二个代码块应该可以工作(使用 Drupal 8.x)。