2013-03-13 42 views
1

为什么不如下工作:为什么Drupal不能识别我的javascript函数?

(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); 

我得到这个错误:类型错误:$(...)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
$('#some-div').Drupal.my_module.doStuff(); 

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

相关问题