Drupal 7 & jQuery - tanda $ dolar

18

Jika saya tidak berencana menggunakan pustaka JS selain jQuery, apakah ada alasan untuk membutuhkan panggilan Drupal ke jQuery.noConflict () yang menghapus $ sebagai alias untuk jQuery?

Dengan asumsi tidak perlu menghapus $ alias, apakah ada cara saya bisa mendapatkannya kembali secara universal tanpa harus selalu membungkus kode jQuery saya di (function ($) {...})?

maxedison
sumber

Jawaban:

11

Solusi yang saya temukan adalah ini:

Di bagian atas file JS pertama yang saya sertakan dalam tema khusus saya, saya cukup menuliskan baris berikut:

$ = jQuery;

Selesai :)

maxedison
sumber
Lol, terima kasih! Saya mencoba mencari tahu mengapa jQuery didefinisikan, tetapi $tidak. Kita harus membuat cuplikan itu menjadi modul: D
CamelBlues
buat ituvar $ = jQuery;
commonpike
6

Tidak, Anda tidak bisa (Yah, Anda mungkin bisa, tetapi Anda tidak boleh).

Mungkin pada suatu titik, modul Anda akan digunakan pada proyek lain di situs lain dan kemudian situs itu akan menggunakan perpustakaan JS lain (Ingat, setiap modul drupal yang Anda tulis adalah GPL secara otomatis dan klien Anda dapat menggunakannya dengan cara apa pun yang mereka inginkan).

Tidak rumit untuk menambahkan dua baris ini ke setiap file js :)

Berdir
sumber
Saya setuju; Demi kompatibilitas lebih baik tidak menggunakan $ as alias untuk jQuery, di Drupal, dan selalu membungkus kode JavaScript menggunakan jQuery dengan (function($){…}).
kiamlaluno
Pada titik itu, tidak akan sulit untuk hanya mencari dan mengganti untuk mengubah semua $ menjadi jQuery di modul saya.
maxedison
@ Maxaxison apa yang terjadi ketika Anda mencampur PHP dengan JavaScript? Gunakan tanda dolar dalam string teks yang dimanipulasi oleh JavaScript?
1
Anda sama sekali mengabaikan apa yang "diajukan" oleh penanya. Ini adalah pertanyaan yang valid dan halangan, terutama ketika menyematkan plugin pihak ke-3 - Anda perlu mengedit semua file tersebut agar berfungsi tanpa $, dan Anda harus melakukannya setiap pembaruan. Temukan dan ganti juga tidak berfungsi dengan plugin yang lebih kompleks, karena mungkin memerlukan sesuatu untuk lingkup global. Membutuhkan perbaikan tbh.
merah
Saya mencoba membuat frase di Internet: "Setiap kali Anda menggunakan $ (), Tuhan membunuh anak kucing." Tolong - pikirkan anak-anak kucing.
aendrew
0

Ini juga bisa menjadi solusi yang memungkinkan, jika Anda cenderung menggunakan modul untuk pertanyaan-pertanyaan semacam itu.

jQuery Dollar

Modul ini memungkinkan pengembang untuk menggunakan $ untuk mengakses perpustakaan jQuery daripada harus memanggil jQuery secara eksplisit atau menggunakan penutupan khusus di Drupal 7. Yang harus Anda lakukan adalah mengaktifkannya.

Sven
sumber