我有一个基本问题,但我还没有找到任何令人满意的答案。我必须承认,我并没有真正理解行为的概念。我的理解是它更灵活,jQuery(document).ready
因为它可以多次触发(例如用于 ajax 刷新)。但它并不总是像方面那样工作,尤其是在处理多个 jQuery 文件时。
我的具体问题:我有多个 js 文件附加到我的 drupal 站点。一些附加到表单,一些通过模块中的 drupal_add_js 附加,一些附加到自定义块等。所有 js 文件如下所示:
(function ($) {
Drupal.behaviors.THEMENAME = {
attach: function(context, settings){
/* CODE */
}
};
}(jQuery));
除了一个 js 文件在某些页面上不起作用(在大多数情况下它可以工作,但在节点页面上[用页面模块结构化])之外,一切都可以工作。
但我不太确定如何命名这些行为。它们应该具有相同的名称还是不同的名称?当我更改名称 ( THEMENAME
) 并提供唯一名称(例如相应的模块)时,大多数 js 不再起作用,但仅适用于某些页面的那个现在适用于每个页面。
我应该如何命名它?不同的 js 没有依赖关系,它们大多是简单的切换、显示、隐藏和 css 操作。