/ / Pourquoi Drupal ne reconnaît-il pas ma fonction javascript? - javascript, drupal-7

Pourquoi Drupal ne reconnaît-il pas ma fonction javascript? - javascript, drupal-7

Pourquoi ce qui suit ne fonctionne pas:

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

Je reçois cette erreur: TypeError: $ (...). Drupal n'est pas défini

Si j'utilise une autre architecture comme passer le sélecteur comme argument de la fonction, cela fonctionne:

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

Cela fonctionne aussi si je déclare la fonction dans l'objet jQuery.fn:

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

Alors appelez ça comme:

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

Mais je veux le mettre sous Drupal.my_module, quelque chose qui ressemble davantage au premier cas.

Des indices? Merci!

Réponses:

1 pour la réponse № 1
$("#some-div").Drupal.my_module.doStuff();

Drupal n’est pas une méthode ou une propriété jQuery valide, d’où le undefined Erreur.