Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Memeriksa Sama ada Imej Telah Dimuatkan dalam jQuery, Termasuk Pengendalian Ralat?

Bagaimanakah Saya Boleh Memeriksa Sama ada Imej Telah Dimuatkan dalam jQuery, Termasuk Pengendalian Ralat?

Barbara Streisand
Barbara Streisandasal
2024-12-08 15:11:12213semak imbas

How Can I Reliably Check if an Image Has Loaded in jQuery, Including Error Handling?

jQuery: Menyemak sama ada Imej Dimuatkan (Mengendalikan Ralat)

Dalam jQuery, anda boleh menyemak sama ada imej dimuatkan menggunakan beban () dan ralat() peristiwa. Walau bagaimanapun, terdapat had apabila ralat berlaku sebelum jQuery mendaftarkan acara ini.

Untuk menangani perkara ini, anda boleh mengesahkan sifat lengkap imej untuk memastikan ia belum dimuatkan sebelum jQuery boleh bertindak. Walau bagaimanapun, pendekatan ini gagal mengesan ralat yang berlaku sebelum peristiwa didaftarkan.

Penyelesaian:

Penyelesaian yang lebih mantap melibatkan pemeriksaan kedua-dua sifat Lebar lengkap dan semulajadi dalam tertib berikut:

function IsImageOk(img) {
  // Check if the image is complete
  if (!img.complete) {
    return false;
  }

  // Check if the image has a valid natural width
  if (img.naturalWidth === 0) {
    return false;
  }

  // Assume the image is okay
  return true;
}

Dengan menyemak lengkap dahulu, anda boleh dengan cepat menentukan sama ada imej telah dimuatkan. Jika tidak, anda kemudian memeriksa naturalWidth, yang memberikan saiz sebenar imej. Jika sifar, imej gagal dimuatkan. Pendekatan ini memastikan bahawa kedua-dua kejayaan memuatkan dan ralat sebelum pendaftaran acara jQuery dikesan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memeriksa Sama ada Imej Telah Dimuatkan dalam jQuery, Termasuk Pengendalian Ralat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn