javascript - masalah pelaksanaan acara jquery
ringa_lee
ringa_lee 2017-06-26 10:53:33
0
9
1084
function tableColor() {
    alert(0) //这里执行
    $(".table tr:odd").css("background", "#f8f8f8");
}  

第一种写法:
tableColor();//执行alert(0),弹出“0”,表格颜色**没有变化**。

第二种写法:
$(function() {
    tableColor();请输入代码
})
//弹出“0”,表格颜色变化了。

Mengapa kaedah penulisan yang berbeza menghasilkan hasil yang berbeza Secara logiknya, fungsi yang sama bukan sahaja akan melaksanakan separuh daripadanya?

ringa_lee
ringa_lee

ringa_lee

membalas semua(9)
phpcn_u1582

$(function(){
//Ini ialah kod yang dilaksanakan selepas halaman dimuatkan
})
Cara pertama anda menulis ialah ia dilaksanakan sebelum halaman dimuatkan, jadi DOM tidak akan berubah jika ia tidak dikesan

黄舟

Yang kedua ialah singkatan .ready(). Sila semak dokumentasi untuk butiran.

漂亮男人

Secara amnya, rujukan js diletakkan dalam <head></head>里面,
第一种写法执行的时候,页面还没加载完,所以找不到$(".table tr:odd")pemilih
Jenis kedua dilaksanakan selepas halaman dimuatkan, jadi warna pemilih boleh ditukar.

Sama ada gunakan kaedah kedua, atau tambahkan rujukan js di hujung halaman.

三叔

Dalam cara penulisan pertama, apabila kod anda dilaksanakan, elemen jadual mungkin tidak dimuatkan pada halaman, jadi elemen itu mungkin tidak ditemui, jadi tidak akan ada perubahan warna.
Cara kedua untuk menulis ialah menunggu elemen halaman dimuatkan sebelum melaksanakan kod anda Ini memastikan semua elemen pada halaman telah dimuatkan dan kod itu boleh mencari elemen yang diperlukan, jadi perubahan yang sepadan akan dibuat

.
漂亮男人
$(function() {
    // DOM加载完毕
});

Perbezaan antara dua panggilan anda ialah kali pertama anda memanggil $(".table tr:odd") apabila DOM tidak dimuatkan, anda mungkin tidak mendapat elemen yang sepadan Anda boleh mencetaknya untuk melihat, tetapi kali kedua anda pasti mendapatnya.

Disarankan meletakkan JS 代码或引入的 JS 文件放在页面底部,<BODY> sebelum itu.

phpcn_u1582

Sama seperti jawapan di tingkat satu, cara penulisan pertama, jika ia diletakkan sebelum tag .table dan dilaksanakan sebelum dom dimuatkan, pemilih $ mungkin tidak dapat mencari dom, dan warna tidak boleh berubah.

Untuk yang kedua, adalah disyorkan untuk menyemak penerangan dokumen jquery saya tidak boleh membuka laman web rasmi jquery di sini, jadi saya boleh membacanya dari tempat lain
http://www.css88.com/jqapi-1. ...

代言

1 Kaedah pertama anda untuk menulis ialah melaksanakannya apabila teg dokumen belum dimuatkan. Dalam erti kata lain, jika html anda belum dimuatkan, anda menambah gaya pada .table tr:odd di dalamnya Skrip js tidak akan mengetahui objek yang mana, jadi ia akan menjadi tidak ditentukan. Elemen tidak selesai dimuatkan. Walau bagaimanapun, tiada ralat sintaks dalam fungsi, jadi makluman 0
2.$(function(){}) masih akan dilaksanakan, iaitu, ia akan menunggu html dimuatkan sebelum melaksanakan kaedah di dalamnya masa, html telah dimuatkan, dan js akan ditangkap elemen manakah objek ini supaya ia boleh digayakan.
Rujukan khusus: http://www.w3school.com.cn/h.asp

小葫芦

Soalan ini tamat

迷茫

Cara pertama untuk menulis:
tableColor();//Execute alert(0), "0" muncul, tetapi dom tidak dipilih dan kod dilaksanakan baris demi baris

Cara penulisan kedua: laksanakan selepas dokumen dimuatkan
$(function() {

tableColor();

})

Kesimpulan, pengenalan js diletakkan di bahagian bawah dokumen Selain fungsi tersuai, js dalaman dalam html ditulis dalam $(function() {}) untuk memastikan kod js dilaksanakan selepas dokumen itu. dilaksanakan

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