Drupal 7 & jQuery - il simbolo del dollaro


18

Se non ho intenzione di utilizzare librerie JS diverse da jQuery, c'è qualche motivo per richiedere la chiamata di Drupal a jQuery.noConflict () che rimuove $ come alias per jQuery?

Supponendo che non sia necessario rimuovere $ alias, c'è un modo per recuperarlo universalmente senza dover sempre racchiudere il mio codice jQuery in (funzione ($) {...})?

Risposte:


11

La soluzione che ho trovato è questa:

Nella parte superiore del primo file JS che includo nel mio tema personalizzato, ho semplicemente messo la seguente riga:

$ = jQuery;

Fatto :)


Ahah grazie! Stavo cercando di capire perché jQuery fosse definito, ma $non lo era. Dovremmo trasformare lo snippet in un modulo: D
CamelBlues,

fare chevar $ = jQuery;
commonpike

6

No, non puoi (Beh, probabilmente potresti, ma non dovresti).

Forse a un certo punto, il tuo modulo verrà utilizzato su un altro progetto su un altro sito e quindi quel sito utilizzerà un'altra libreria JS (Ricorda, ogni modulo drupal che scrivi è automaticamente GPL e il tuo client può usarlo come vogliono).

Non è così complicato aggiungere queste due righe ad ogni file js :)


Sono d'accordo; per motivi di compatibilità è meglio non usare $ come alias per jQuery, in Drupal, e avvolgere sempre il codice JavaScript usando jQuery con (function($){…}).
kiamlaluno

A quel punto, non sarebbe difficile semplicemente trovare e sostituire per trasformare tutti $ in jQuery nel mio modulo.
maxedison,

@maxedison cosa succede quando mescoli PHP con JavaScript? Utilizzare i simboli di dollaro nelle stringhe di testo manipolate da JavaScript?

1
Hai completamente ignorato ciò che la domanda che il richiedente stava "assumendo". È una domanda valida e un ostacolo, specialmente quando si incorporano plug-in di terze parti: è necessario modificare tutti quei file per farli funzionare senza $, ed è necessario farlo ogni aggiornamento. Trova e sostituisci non funziona neanche con plugin più complessi, poiché potrebbero richiedere qualcosa di portata globale. Ha bisogno di una correzione tbh.
rosso

Sto cercando di coniare una frase su Internet: "Ogni volta che usi $ (), Dio uccide un gattino". Per favore, pensa ai gattini.
aendrew

0

Questa potrebbe anche essere una possibile soluzione, se si tende a utilizzare i moduli per questo tipo di domande.

jQuery Dollar

Questo modulo consente agli sviluppatori di utilizzare $ per accedere alla libreria jQuery invece di dover chiamare esplicitamente jQuery o utilizzare chiusure speciali in Drupal 7. Tutto quello che devi fare è abilitarlo.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.