33 votes

Utilisation de JQuery dans Drupal 7

Je suis en train d'écrire mon propre module Drupal 7, et comme utiliser JQuery dans il.

$('#field').toggle();

Mais j'obtiens cette erreur:

TypeError: Property '$' of object [object DOMWindow] is not a function

Il semble que JQuery n'est pas chargé. Sinon, $ doivent être définis.

Si j'ai fait de l'inclure dans l'en-tête:

<script type="text/javascript" src="http://rockfinder.de/misc/jquery.js?v=1.4.4"></script>

Dois-je faire autre chose pour activer JQuery dans Drupal? Est $ écrasée par Drupal?

C'est le site web: http://rockfinder.de

92voto

Eaton Points 6306

À partir de Drupal 7 guide de mise à niveau:

Javascript doit être compatible avec d'autres bibliothèques que jQuery par l'ajout d'un petit wrapper autour de votre code existant:

(function ($) {
  // Original JavaScript code.
})(jQuery);

L' $ global de la volonté de ne plus se référer à l'objet jquery. Cependant, avec cette la construction, la variable locale $ fera référence à jquery, permettant à votre code pour l'accès jQuery par $ de toute façon, même si le code ne sera pas en conflit avec d'autres bibliothèques qui utilisent l' $ global.

Vous pouvez aussi utiliser le 'jQuery' variable au lieu de la variable $ dans votre code.

14voto

Andreas Grech Points 39188

Selon Firebug, votre fichier jQuery est en cours de chargement:

texte alternatif

Mais le $ est écrasé par autre chose:

texte alternatif


Ce que vous devez faire est d'encapsuler l'utilisation de la variable $ avec une fonction qui s'invoque en utilisant l'objet jQuery comme premier argument réel:

 (function ($) {

 // in this function, you can use the $ which refers to the jQuery object

}(jQuery));
 

8voto

Guus Points 71

Il y a de fortes chances que votre script ne soit pas initialisé de cette manière, vous devrez utiliser Drupal.behaviors.YOURTHEMENAME

 (function ($) {
Drupal.behaviors.YOURTHEMENAME = {
attach: function(context, settings) {

/*Add your js code here*/
alert('Code');

}

};
})(jQuery);    
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X