jquery - Drupal 行为

标签 jquery drupal drupal-6

  • Drupal 的行为到底是什么?
  • 它为模块开发人员提供什么类型的服务层?
  • 它映射到 jQuery.ready 的关系类型是什么?

最佳答案

长版:Drupal.behaviors 不仅仅是 jQuery.ready 的替代品,因为后者只运行一次(当 DOM 准备好操作时):行为可以在页面执行期间多次触发,并且每当新的 DOM 元素插入到文档中时就可以运行。

此外,模块可以覆盖或扩展现有行为(例如,如果一个模块具有在所有链接上添加弹跳效果的行为,则第二个模块可以通过不同的弹跳效果替换该行为)。

简短版本:它更加模块化,尽管文档可以改进。

<小时/>

此外,从 Drupal 7 开始,使用 drupal_add_js (PHP) 或 Drupal.settings.modulename (Javascript) 定义的设置将直接作为第二个参数传递(第一个参数)其中之一是行为的上下文。

例如:

Drupal.behaviors.changeLinks = function(context, settings){
    if (!settings) settings = Drupal.settings.changeLinks;
    $("a", context).hover(function() {
        $(this).css('color', settings.color);
    });
};

如果您的一个脚本(或另一个脚本)创建了新节点,它仍然可以将行为应用于新节点,而无需知道安装了哪些其他模块:

var newNodes = $('<a href="#">Hello</a> <a href="#">World</a>').appendTo('#someDiv');

Drupal.attachBehaviors(newNodes);

关于jquery - Drupal 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3941426/

相关文章:

css - Drupal:CSS 中区域背景图像的无效属性值

Drupal:如何从我的 php 模板添加可转换文本?

javascript - 如何检测点击的元素是否不是 jQuery 元素的子元素?

javascript - 找不到使用 javascript + jquery 从 URL 解析并将其显示在屏幕上的方法

php - 是否可以通过javascript调用自定义模块中的drupal函数?

linux - 我的 drupal 仅在我在线时运行

Drupal View - 拆分暴露的形式可能吗?

Drupal, View : using AJAX to load the complete node?

javascript - 压缩类似的 IF 语句

jquery - 使用 JQuery 进行 JSONP Ajax 调用会导致内存泄漏