Apakah singkatan berikut untuk $(document).ready
?
(function($){
//some code
})(jQuery);
Saya melihat pola ini banyak digunakan, tetapi saya tidak dapat menemukan referensi untuk itu. Jika itu adalah singkatan $(document).ready()
, apakah ada alasan tertentu itu mungkin tidak berfungsi? Dalam tes saya sepertinya selalu menyala sebelum acara siap.
javascript
jquery
document-ready
shorthand
Mark Brown
sumber
sumber
var somevar;
) Tidak akan mengubah isi variabel dengan nama yang sama di luar fungsiJawaban:
Singkatan untuk
$(document).ready(handler)
is$(handler)
(di manahandler
adalah fungsi). Lihat di sini .Kode dalam pertanyaan Anda tidak ada hubungannya dengan
.ready()
. Sebaliknya, ini adalah ekspresi fungsi yang dipanggil langsung (IIFE) dengan objek jQuery sebagai argumennya. Tujuannya adalah untuk membatasi ruang lingkup setidaknya$
variabel ke bloknya sendiri sehingga tidak menimbulkan konflik. Anda biasanya melihat pola yang digunakan oleh plugin jQuery untuk memastikannya$ == jQuery
.sumber
iife
, atau langsung beralih ke posting blog terkenal Cowboy Alman . Detail ... sheesh.Steno adalah:
sumber
$
. Mungkin ingin menambahkan itu. Ini berguna untukjQuery(function($, undefined) {});
$(document).ready(function(){ });
$
secara gratis sebagai argumen pertama.Steno yang benar adalah ini:
Kode yang Anda posting ...
... membuat fungsi anonim dan menjalankannya segera dengan
jQuery
diteruskan sebagai argumen$
. Yang perlu dilakukan adalah mengambil kode di dalam fungsi dan menjalankannya seperti biasa, karena$
sudah menjadi alias untukjQuery
. : Dsumber
Ini bukan singkatan untuk
$(document).ready()
.Kode yang Anda poskan mengotakkan kode bagian dalam dan menjadikan jQuery tersedia
$
tanpa mencemari namespace global. Ini dapat digunakan ketika Anda ingin menggunakan prototipe dan jQuery pada satu halaman.Didokumentasikan di sini: http://learn.jquery.com/using-jquery-core/avoid-conflicts-other-libraries/#use-an-immediately-invoked-function-expression
sumber
Baris khusus ini adalah pembungkus biasa untuk plugin jQuery:
"... untuk memastikan bahwa plugin Anda tidak bertabrakan dengan perpustakaan lain yang mungkin menggunakan tanda dolar, itu adalah praktik terbaik untuk meneruskan jQuery ke fungsi pelaksana mandiri (penutupan) yang memetakannya ke tanda dolar agar bisa ' tidak akan ditimpa oleh perpustakaan lain dalam lingkup pelaksanaannya. "
Dari http://docs.jquery.com/Plugins/Authoring
sumber
Steno aman multi-kerangka kerja untuk siap adalah:
Ini karena jQuery bukan satu-satunya kerangka kerja yang menggunakan variabel
$
danundefined
sumber
(function($){ ... })(jQuery);
ready
, melainkan segera dipanggilVarian yang lebih pendek adalah untuk digunakan
di mana
$
singkatan jQuery dan()=>{}
disebut 'fungsi panah' yang mewarisithis
dari penutupan. (Sehingga di dalamthis
Anda mungkin akan memilikiwindow
bukandocument
.)sumber
Bagaimana dengan ini?
sumber