Drupal 7 i jQuery - znak dolara $

18

Jeśli nie planuję używać żadnych bibliotek JS innych niż jQuery, czy jest jakiś powód, aby potrzebować wywołania Drupala do jQuery.noConflict (), która usuwa $ jako alias dla jQuery?

Zakładając, że nie ma potrzeby usuwania aliasu $, czy istnieje sposób, w jaki mogę go odzyskać bez konieczności zawijania mojego kodu jQuery (funkcja ($) {...})?

maxedison
źródło

Odpowiedzi:

11

Rozwiązanie, które wymyśliłem, to:

W górnej części pierwszego pliku JS, który dołączam do motywu niestandardowego, po prostu umieszczam następujący wiersz:

$ = jQuery;

Gotowy :)

maxedison
źródło
Lol dziękuję! Próbowałem dowiedzieć się, dlaczego zdefiniowano jQuery, ale $tak nie było. Powinniśmy przekształcić ten fragment w moduł: D
CamelBlues
zrób tovar $ = jQuery;
commonpike,
6

Nie, nie możesz (Cóż, prawdopodobnie mógłbyś, ale nie powinieneś).

Być może w pewnym momencie twój moduł zostanie wykorzystany w innym projekcie na innej stronie, a następnie ta strona będzie używać innej biblioteki JS (Pamiętaj, że każdy napisany przez ciebie moduł Drupal jest automatycznie GPL i twój klient może go używać w dowolny sposób).

Dodanie tych dwóch wierszy do każdego pliku js nie jest takie skomplikowane :)

Berdir
źródło
Zgadzam się; ze względu na kompatybilność lepiej nie używać $ jako aliasu dla jQuery w Drupal i zawsze owijać kod JavaScript za pomocą jQuery z (function($){…}).
kiamlaluno
W tym momencie nie byłoby trudno po prostu znaleźć i zamienić, aby zamienić wszystkie $ na jQuery w moim module.
maxedison
@maxedison, co się stanie, gdy wymieszasz PHP z JavaScript? Używać znaków dolara w ciągach tekstowych manipulowanych przez JavaScript?
1
Całkowicie zignorowałeś to, co „pytający” pytający zadawał. To ważne pytanie i utrudnienie, szczególnie przy osadzaniu wtyczek firm trzecich - musisz edytować wszystkie te pliki, aby działały bez $, i musisz to robić przy każdej aktualizacji. Funkcja Znajdź i zamień również nie działa z bardziej złożonymi wtyczkami, ponieważ mogą wymagać czegoś o zasięgu globalnym. Potrzebuje naprawy TBH.
czerwony
Próbuję wymyślić w Internecie frazę: „Za każdym razem, gdy używasz $ (), Bóg zabija kota”. Proszę - pomyśl o kociętach.
aendrew
0

Może to być również możliwe rozwiązanie, jeśli zwykle używasz modułów do tego rodzaju pytań.

jQuery Dollar

Ten moduł pozwala programistom na użycie $ w celu uzyskania dostępu do biblioteki jQuery zamiast konieczności jawnego wywoływania jQuery lub używania specjalnych zamknięć w Drupal 7. Wystarczy, że go włączysz.

Sven
źródło