Drupal 7 & jQuery - dolar işareti


18

Eğer jQuery dışında herhangi bir JS kitaplığı kullanmayı planlamıyorsam, Drupal'ın jQuery için bir takma ad olarak $ kaldıran jQuery.noConflict () çağrısına gerek var mı?

$ Takma adını kaldırmaya gerek olmadığı varsayılarak, jQuery kodumu (işlev ($) {...}) içine her zaman sarmak zorunda kalmadan evrensel olarak geri alabileceğim bir yol var mı?

Yanıtlar:


11

Geldiğim çözüm şudur:

Özel temama eklediğim ilk JS dosyasının üstünde, sadece aşağıdaki satırı koydum:

$ = jQuery;

Tamamlandı :)


Lol teşekkürler! Neden jQuery tanımlanmış, ama $değildi anlamaya çalışıyordu . Bu snippet'i bir modüle dönüştürmeliyiz: D
CamelBlues

Bunu yapvar $ = jQuery;
commonpike

6

Hayır, yapamazsın (Muhtemelen yapabilirsin, ama yapmamalısın).

Belki bir noktada, modülünüz başka bir sitedeki başka bir projede kullanılacak ve daha sonra bu site başka bir JS kütüphanesi kullanacaktır (Unutmayın, yazdığınız her drupal modül otomatik olarak GPL'dir ve müşteriniz bunu istediği gibi kullanabilir).

Bu iki satırı her js dosyasına eklemek o kadar karmaşık değil :)


Katılıyorum; çünkü uyumluluk uğruna Drupal'da jQuery için $ takma ad kullanmamak ve her zaman jQuery ile JavaScript kodunu sarmak daha iyidir (function($){…}).
kiamlaluno

Bu noktada, modülümdeki tüm $ 'ı jQuery'ye dönüştürmek için sadece bir bul ve değiştir yapmak zor olmaz.
maxedison

@maxedison PHP'yi JavaScript ile karıştırdığınızda ne olur? JavaScript tarafından değiştirilen metin dizelerinde dolar işareti mi kullanıyorsunuz?

1
Askerin “varsaydığı” soruyu tamamen göz ardı ettiniz. Bu, özellikle 3. taraf eklentileri yerleştirirken geçerli bir soru ve bir engeldir - $ olmadan çalışabilmeleri için tüm bu dosyaları düzenlemeniz ve her güncellemede yapmanız gerekir. Bul ve değiştir, daha kapsamlı eklentilerle çalışmaz, çünkü bunlar küresel kapsam için bir şey gerektirebilir. Bir düzeltme tbh gerekir.
kırmızı

İnternette bir cümle yazmaya çalışıyorum: "Her $ () kullandığınızda Tanrı bir yavru kedi öldürür." Lütfen - yavru kedileri düşünün.
aendrew

0

Bu tür sorular için modül kullanma eğilimindeyseniz, bu da olası bir çözüm olabilir.

jQuery Doları

Bu modül, geliştiricilerin jQuery'yi açıkça çağırmak veya Drupal 7'de özel kapanışlar kullanmak yerine jQuery kitaplığına erişmek için $ kullanmasını sağlar. Tek yapmanız gereken bunu etkinleştirmektir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.