2013-03-13 81 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錯誤。

相關問題