我有一个基本问题,但我还没有找到任何令人满意的答案。我必须承认,我并没有真正理解行为的概念。我理解的是它更灵活jQuery(document).ready
因为它可以被多次激发(例如对于ajax刷新)。但它并不总是如此,尤其是使用多个jQuery文件。
我的具体问题:我有多个连接到我的drupal网站的js文件。一些附加到表单,一些通过drupal_add_js附加到模块中,一些附加到自定义块等。 所有js文件如下所示:
(function ($) {
Drupal.behaviors.THEMENAME = {
attach: function(context, settings){
/* CODE */
}
};
}(jQuery));
除了某个页面上没有一个js文件之外,所有内容都有效(大多数情况下它都有效,但在节点页面上没有[用页面模块构建])。
但我不太确定如何命名这些行为。它们应该具有相同的名称,还是不同的?当我改变名称(THEMENAME
)并给出唯一的名称(例如相应的模块)时,大多数js不再起作用,但只在某些页面上工作的那个现在可以在每个页面上工作。
我该如何命名?不同的js没有依赖关系,它们大多是简单的切换,显示,隐藏和css操作。
答案 0 :(得分:0)
行为是JavaScript对象。如果您将所有行为命名为相同,则会一次又一次地覆盖同一对象,并且只会执行最后加载的行为。您需要为每个不同的行为找到唯一的名称。这个名字可以是任何东西。我的建议是在它们前面添加您的主题或模块名称,然后使用最能描述其功能的简短名称。