jQuery: height()/width() dan "display:none"
Dalam senario ini, elemen dengan ID "sasaran " mempunyai sifat paparannya ditetapkan kepada "tiada" melalui CSS. Walau bagaimanapun, apabila menyemak ketinggiannya menggunakan $("#target").height(), nilai bukan sifar diperoleh.
Tingkah laku ini berpunca daripada pengendalian dalaman jQuery terhadap elemen tersembunyi apabila mengakses dimensinya. Jika elemen mempunyai offsetWidth 0 (dianggap "tersembunyi" oleh jQuery), perpustakaan cuba menentukan ketinggiannya.
Untuk mencapai ini, jQuery menggunakan sifat berikut buat sementara waktu pada elemen:
Ia kemudian mendapatkan semula ketinggian menggunakangetWidthOrHeight(... ), yang menambah jidar/lapik seperti yang diperlukan dan memulihkan sifat asal.
Pada asasnya, jQuery secara diam-diam memaparkan elemen خارج حدود تدفق المستند, memperoleh ketinggiannya dan kemudian menyembunyikannya semula. Ini berlaku sebelum urutan UI boleh mengemas kini, jadi pengguna kekal tidak mengetahui proses itu.
Mekanisme ini membolehkan .height()/.width() berfungsi walaupun pada elemen tersembunyi, dengan syarat elemen induknya boleh dilihat. Oleh itu, anda boleh menggunakan .height()/.width() tanpa melakukan urutan show/hide secara manual, kerana ia dikendalikan secara dalaman oleh kaedah ini.
Atas ialah kandungan terperinci Mengapakah `jQuery.height()` Mengembalikan Nilai untuk Elemen Tersembunyi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!