Drupal 7 & jQuery - le signe $ dollar


18

Si je ne prévois pas d'utiliser des bibliothèques JS autres que jQuery, y a-t-il une raison d'avoir besoin de l'appel de Drupal à jQuery.noConflict () qui supprime $ comme alias pour jQuery?

En supposant qu'il n'est pas nécessaire de supprimer l'alias $, existe-t-il un moyen de le récupérer universellement sans avoir à encapsuler mon code jQuery dans (fonction ($) {...})?

Réponses:


11

La solution que j'ai trouvée est la suivante:

En haut du premier fichier JS que j'inclus dans mon thème personnalisé, je mets simplement la ligne suivante:

$ = jQuery;

Terminé :)


Lol merci! J'essayais de comprendre pourquoi jQuery était défini, mais ce $n'était pas le cas. Nous devrions faire de cet extrait un module: D
— CamelBlues

faire çavar $ = jQuery;
— commonpike

6

Non, vous ne pouvez pas (eh bien, vous pourriez probablement, mais vous ne devriez pas).

Peut-être qu'à un moment donné, votre module sera utilisé sur un autre projet sur un autre site, puis ce site utilisera une autre bibliothèque JS (rappelez-vous, chaque module drupal que vous écrivez est automatiquement GPL et votre client peut l'utiliser comme il le souhaite).

Ce n'est pas si compliqué d'ajouter ces deux lignes à chaque fichier js :)


Je suis d'accord; pour des raisons de compatibilité, il vaut mieux ne pas utiliser $ comme alias pour jQuery, dans Drupal, et toujours envelopper le code JavaScript à l'aide de jQuery avec (function($){…}).
— kiamlaluno

À ce stade, il ne serait pas difficile de simplement rechercher et remplacer pour transformer tous les $ en jQuery dans mon module.
— maxedison

@maxedison que se passe-t-il lorsque vous mélangez PHP avec JavaScript? Utiliser des signes dollar dans des chaînes de texte manipulées par JavaScript?

1
Vous avez totalement ignoré ce que le demandeur de questions "supposait". C'est une question valable et une gêne, en particulier lors de l'intégration de plugins tiers - vous devez modifier tous ces fichiers pour les faire fonctionner sans $, et vous devez le faire à chaque mise à jour. La recherche et le remplacement ne fonctionnent pas non plus avec des plugins plus complexes, car ils peuvent nécessiter que quelque chose soit de portée globale. Besoin d'un correctif tbh.
— le

J'essaie de forger une phrase sur Internet: "Chaque fois que vous utilisez $ (), Dieu tue un chaton." S'il vous plaît - pensez aux chatons.
— aendrew

0

Cela pourrait également être une solution possible, si vous avez tendance à utiliser des modules pour ce type de questions.

jQuery Dollar

Ce module permet aux développeurs d'utiliser $ pour accéder à la bibliothèque jQuery au lieu d'avoir à appeler explicitement jQuery ou à utiliser des fermetures spéciales dans Drupal 7. Tout ce que vous avez à faire est de l'activer.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.