Rumah  >  Soal Jawab  >  teks badan

javascript - masalah pelaksanaan acara jquery

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_leeringa_lee2672 hari yang lalu1053

membalas semua(9)saya akan balas

  • phpcn_u1582

    phpcn_u15822017-06-26 10:55:33

    $(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

    balas
    0
  • 黄舟

    黄舟2017-06-26 10:55:33

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

    balas
    0
  • 漂亮男人

    漂亮男人2017-06-26 10:55:33

    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.

    balas
    0
  • 三叔

    三叔2017-06-26 10:55:33

    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

    .

    balas
    0
  • 漂亮男人

    漂亮男人2017-06-26 10:55:33

    $(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.

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-06-26 10:55:33

    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. ...

    balas
    0
  • 代言

    代言2017-06-26 10:55:33

    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

    balas
    0
  • 高洛峰

    高洛峰2017-06-26 10:55:33

    Soalan ini tamat

    balas
    0
  • 迷茫

    迷茫2017-06-26 10:55:33

    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

    balas
    0
  • Batalbalas