Cara Melaksanakan Kelewatan Menaip dalam Pengendali .keyup()
Apabila bekerja dengan medan carian yang mencetuskan tindakan setiap kali kunci ditekan, ia boleh memberi manfaat untuk melaksanakan kelewatan untuk mengurangkan pertanyaan yang tidak perlu. Artikel ini meneroka cara untuk mencapai kelewatan ini, memastikan pertanyaan hanya dilaksanakan selepas jeda dalam menaip.
Pengendali .keyup() tidak menawarkan pilihan sedia ada untuk memperkenalkan kelewatan. Walau bagaimanapun, fungsi tersuai boleh digunakan untuk mencapai tingkah laku ini. Satu pendekatan biasa ialah menggunakan fungsi setTimeout().
function delay(callback, ms) { var timer = 0; return function() { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { callback.apply(context, args); }, ms || 0); }; }
Fungsi ini mengambil dua parameter: panggil balik (fungsi untuk dilaksanakan selepas kelewatan) dan ms (tempoh kelewatan dalam milisaat).
Untuk menggunakan fungsi ini dengan pengendali .keyup():
$('#input').keyup(delay(function (e) { console.log('Time elapsed!', this.value); }, 500));
Dalam contoh ini, peristiwa .keyup() medan 'input' mencetuskan fungsi kelewatan, yang menunggu selama 500 milisaat selepas setiap kekunci ditekan. Hanya apabila pengguna berhenti menaip selama setengah saat barulah panggilan balik dilaksanakan, mengelog nilai semasa medan input.
Atas ialah kandungan terperinci Bagaimana untuk Menambah Kelewatan Menaip pada Pengendali jQuery .keyup()?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!