4

有没有办法在 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 事件之后运行。

谢谢

4

1 回答 1

1

你试过了吗?

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

似乎 Drupal 不再依赖 jQuery 的 document.ready 来触发行为。
这个变化记录中可以看出。

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

于 2018-07-19T01:51:10.783 回答