我有两个几乎类似的网站(一个是一个测试项目)和第二个更像是最终版本。在它们中,我都有非常简单的带有js的自定义模块,而且在第一个网站上它工作得很好,但是第二个问题是js中的代码多次执行(6-10次),它取决于活动模块--我删除了一些模块并删除了js执行的次数……js文件很简单,比如警报(“hi”);它被打印了10次.我认为有一个模块可以解决这个问题,但我不知道是什么问题。也许有人有这样的问题?或者一些关于如何找出问题所在的建议。
发布于 2019-09-06 19:42:06
once()在许多情况下可能有效。我也用过这样的旗子:
(function ($, Drupal) {
let flag = false;
Drupal.behaviors.my_module = {
attach: function (context, settings) {
if (flag === false) {
flag = true;
console.log('This should only display one time.');
}
}
};
})(jQuery, Drupal);请注意,我只从内存中在这个注释框中写了这段代码,并没有真正测试这段代码。
另外,Drupal.behaviors多次正确运行,因为它应该在每次发生某种状态更改时进行更新,这些状态更改将要求它进行更新(比如AJAX调用)。因此,您必须在您的一方采取额外的步骤,以确保某些代码只运行一次。
https://drupal.stackexchange.com/questions/285113
复制相似问题