javascript - Mengenai penggunaan $(function(){}) dalam jquery.
typecho
typecho 2017-06-26 10:51:00
0
5
1050

Wira yang dihormati, saya seorang pemula dalam js Saya telah mereka bentuk laman web yang mudah baru-baru ini dan menyalin beberapa kod jq dari laman web.
Saya mendapati bahawa permulaan beberapa segmen kod ialah $(function(){...}), kemudian saya akan menulisnya di dalam $(function(){...}) dalam format ini, seperti $(function( ){$('#denglu_submit').click(function(){...
Tetapi saya juga melihat bahawa beberapa coretan kod tidak mempunyai $(function(){}), tetapi secara langsung $('#denglu_submit') . click(function(){...dll., saya telah mengujinya, dan kedua-duanya nampaknya berfungsi. Jadi saya tidak tahu apa perbezaannya?

typecho
typecho

Following the voice in heart.

membalas semua(5)
过去多啦不再A梦
  1. Jika anda meletakkan kedua-dua kaedah, html页面结构下面的话,写不写$(function(){})都行,都是等到页面加载完后执行(别忘了html akan dihuraikan dan dimuatkan dari atas ke bawah).

  2. Tetapi jika anda meletakkan semuanya pada struktur halaman, perbezaannya akan menjadi besar $(function(){})为网页加载完后执行,没有$(function(){})直接写的话是按html页面从上到下的顺序执行,也就是是说如果jsMasa pelaksanaan kod agak lama (seperti mendapatkan jumlah data yang banyak), maka kandungan html berikut tidak akan dimuatkan dan dipaparkan sehingga. js dilaksanakan. Ini jelas tidak munasabah. Anda harus membiarkan kandungan html dipaparkan terlebih dahulu.

  3. Jadi apabila kami menulis kod, kami biasanya menambah $(function(){})为好,这样就算jsJika terdapat ralat dalam kod atau mengambil masa yang lama untuk dilaksanakan, kandungan utama halaman boleh dimuatkan tanpa menjejaskan penyemakan imbas halaman web pengguna. Dan yang terbaik adalah meletakkan kod di bawah struktur halaman untuk memastikan halaman dimuatkan sepenuhnya (lagipun, HTML dihuraikan dan dimuatkan mengikut urutan dari atas ke bawah).


Pengetahuan lain yang sedikit $(function(){})为网页加载完后执行,好像和原生js的window.onload = function() {}Sama, tetapi terdapat perbezaan yang pertama dilaksanakan selepas struktur (tidak termasuk gambar) dimuatkan, dan yang kedua dilaksanakan selepas struktur (termasuk gambar) dimuatkan.

女神的闺蜜爱上我

$(function(){}) Ini ialah logik di dalam yang dilaksanakan selepas js dimuatkan dan struktur dom dimuatkan.

$('#denglu_submit').click(function(){...}) Ini dilaksanakan selepas js dimuatkan.

阿神

$(function(){...})Kandungan di sini adalah untuk menunggu nod halaman atau fail yang dirujuk dimuatkan sebelum melaksanakan. Ini memastikan bahawa nod halaman telah dimuatkan dan nod yang sepadan dengan pemilih juga tersedia.

$('#denglu_submit').click(function(){...}),这个是等加载到这里的时候就执行了,执行的时候并不知道#denglu_submit有没有加载到页面上。如果页面没有这个节点,那么对应的事件是没有反应的。
你可以试着把这两段段代码都放到headJalankannya ke dalam dan anda akan tahu perbezaannya!

phpcn_u1582

Adakah anda tahu window.onload? Ini dilaksanakan lebih awal daripada onload

给我你的怀抱

Pertama sekali, biar saya jawab $ ialah nama fungsinya:

$ = function() {
alert('good');
}
$();

Dengan cara ini, tentukan fungsi yang dipanggil $ dan laksanakannya; anda boleh mengujinya sendiri;

$(function() {})

Di sini, parameter dihantar dalam fungsi $ Parameter ini ialah fungsi tanpa nama (fungsi tanpa nama, juga dipanggil penutupan Jadi anggaplah

).

$ = function(fun) {
fun();
}
$(function() { alert("good"); } );

Pelaksanaan akhir adalah sama seperti di atas, tetapi ia akan menjadi lebih fleksibel Anda boleh lulus mana-mana fungsi yang anda ingin laksanakan untuk pelaksanaan Dan di sini:

$('#denglu_submit').click(function(){alert("good");});

Malah, rentetan '#denglu_submit' dihantar ke kaedah $, dan kemudian fungsi tanpa nama dihantar ke fungsi klik dalam $ Keseluruhan reka bentuk fungsi adalah serupa dengan ini:
$ = function(a) {
    alert(a);
    return $;
}
$.click = function(fun) { fun(); }; 
$("hello").click(function() {alert("fun")});

Sudah tentu, jquery pasti lebih rumit.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan