jQuery是一種非常流行的JavaScript庫,它提供了豐富的方法和插件來幫助我們簡化復雜的操作。其中一項很有用的功能是長按一直執(zhí)行的功能。
在實際開發(fā)中,我們經常需要實現(xiàn)類似于長按刪除的操作,在手機或平板設備上,這種操作是常見的。在jQuery中,我們可以使用mousedown和mouseup事件來實現(xiàn)這個功能。
$(document).ready(function(){ var timeoutID; var intervalID; var delay = 500; // 500毫秒后開始執(zhí)行 var interval = 100; // 每隔100毫秒執(zhí)行一次 $("#btn").on('mousedown', function(){ timeoutID = setTimeout(function() { intervalID = setInterval(function() { // 長按持續(xù)執(zhí)行的代碼 }, interval); }, delay); }); $("#btn").on('mouseup', function(){ clearTimeout(timeoutID); clearInterval(intervalID); }); });
上面的代碼首先定義了變量timeoutID和intervalID,分別用于保存setTimeout和setInterval的返回值。我們需要用到這些返回值來取消延遲和持續(xù)執(zhí)行的操作。
在mousedown事件中,我們使用setTimeout函數(shù)來延遲執(zhí)行。當用戶按下按鈕,并且保持500毫秒時,setTimeout函數(shù)會執(zhí)行,并且返回一個定時器的ID。
當定時器到期時,我們使用setInterval函數(shù)來循環(huán)執(zhí)行一段代碼。在這里,你可以根據你的具體需求來編寫代碼,一般來說,我們可以用來執(zhí)行一些長時間運行的操作。
在mouseup事件中,我們需要取消延遲和持續(xù)執(zhí)行的操作,這時候我們使用clearTimeout和clearInterval函數(shù)來取消之前的操作。
通過以上代碼實現(xiàn)了長按一直執(zhí)行的功能,但需要注意的是,如果你的代碼中有大量的運算或者是耗時操作,建議縮短interval的時間,以避免長時間的卡頓。
上一篇css 如何寫空格