Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Mencegah Berbilang $(window).resize Event Firings?

Bagaimana untuk Mencegah Berbilang $(window).resize Event Firings?

Mary-Kate Olsen
Lepaskan: 2024-11-05 21:48:02
asal
576 orang telah melayarinya

How to Prevent Multiple $(window).resize Event Firings?

Mengatasi Peristiwa Ubah Saiz Berbilang dengan $(window).resize

Dalam pembangunan web, memanipulasi saiz tetingkap penyemak imbas menggunakan acara $(window).resize boleh mencetuskan tembakan berganda. Untuk menangani perkara ini, kami meneroka penyelesaian yang melaksanakan fungsi hanya selepas operasi ubah saiz selesai.

Penyelesaian:

Untuk memanggil fungsi selepas mengubah saiz tetingkap penyemak imbas ialah selesai, kita boleh menggunakan fungsi waitForFinalEvent. Fungsi ini mengambil fungsi panggil balik, kelewatan milisaat dan pengecam unik sebagai argumen. Fungsi ini menetapkan tamat masa untuk panggilan balik berdasarkan kelewatan, tetapi ia juga menyemak sama ada tamat masa sebelumnya dengan ID unik yang sama wujud. Jika ya, ia membatalkan tamat masa sebelumnya dan menetapkan yang baharu.

Pelaksanaan:

<code class="javascript">var waitForFinalEvent = (function () {
  var timers = {};
  return function (callback, ms, uniqueId) {
    if (!uniqueId) {
      uniqueId = "Don't call this twice without a uniqueId";
    }
    if (timers[uniqueId]) {
      clearTimeout (timers[uniqueId]);
    }
    timers[uniqueId] = setTimeout(callback, ms);
  };
})();</code>
Salin selepas log masuk

Penggunaan:

Laksanakan fungsi waitForFinalEvent dalam kod anda seperti berikut:

<code class="javascript">$(window).resize(function () {
    waitForFinalEvent(function(){
      alert('Resize...');
      //...
    }, 500, "some unique string");
});</code>
Salin selepas log masuk

Dengan menyediakan ID unik untuk setiap panggilan balik, pelaksanaan ini memastikan panggilan balik yang berasingan tidak mengganggu acara tamat masa satu sama lain. Oleh itu, fungsi hanya akan dilaksanakan selepas operasi ubah saiz selesai, menghalang tembakan berganda.

Atas ialah kandungan terperinci Bagaimana untuk Mencegah Berbilang $(window).resize Event Firings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan