Prečo nefunguje nasledujúci postup:
(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);
Mám túto chybu: TypeError: $ (...) Drupal je nedefinovaný
Ak používam inú architektúru, ako je posun voliča ako argument pre funkciu, ktorá funguje:
(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);
Tiež funguje, ak deklarujem funkciu v objekte jQuery.fn:
$.fn.doStuff = function(){...do something...}; // It works
Potom ho zavolajte takto:
$("#my-div").doStuff(); // It works
Ale chcem to uviesť pod Drupal.my_module, niečo viac ako prvý prípad.
Akékoľvek náznaky? Vďaka!
odpovede:
1 pre odpoveď č. 1$("#some-div").Drupal.my_module.doStuff();
Drupal
nie je platná jQuery metóda alebo vlastnosť, preto undefined
chyba.