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)。
有没有办法在 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)。