为什么Drupal没有识别我的javascript函数?

时间:2013-03-13 15:06:13

标签: javascript drupal-7

为什么以下不起作用:

(function($){

Drupal.my_module = {};

Drupal.behaviors.my_module = {
  attach: function(context, settings) {     
    $('#some-div').Drupal.my_module.doStuff(); 
  }
};

Drupal.my_module.doStuff = function(){
  this.append('Hello World');
}

})(jQuery);

我收到此错误:TypeError:$(...)。Drupal未定义

如果我使用另一种架构,比如将选择器作为其工作函数的参数传递:

(function($){

Drupal.my_module = {};

Drupal.behaviors.my_module = {
  attach: function(context, settings) {     
    Drupal.my_module.doStuff($('#some-div')); 
  }
};

Drupal.my_module.doStuff = function(elem){
  elem.append('Hello World');
}

})(jQuery);

如果我在jQuery.fn对象中声明该函数,它也可以工作:

$.fn.doStuff = function(){...do something...};  // It works

然后称之为:

$('#my-div').doStuff(); // It works

但是我想把它放在Drupal.my_module下,更像是第一种情况。

任何线索? 谢谢!

1 个答案:

答案 0 :(得分:1)

$('#some-div').Drupal.my_module.doStuff(); 

Drupal不是有效的jQuery方法或属性,因此undefined错误。