兩種防止js重複執行的方法
阿新 • • 發佈:2019-01-02
其一:
function test(){ console.log(0); } function throttle(fun){ if(fun.timeoutId) {window.clearTimeout(fun.timeoutId);} fun.timeoutId = window.setTimeout(function(){ fun(); fun.timeoutId = null; }, 1000); } throttle(test); throttle(test); throttle(test); throttle(test);
其二:
//禁用按鈕 $('button').prop('disabled',true); //回撥函式啟用按鈕 $('button').prop('disabled',false); 如果想要最後一次點選生效,把timer定時器放在函式外每次呼叫進行檢測;如果不涉及定時器,就在函式內部把函式賦值給自己讓每次呼叫都執行新的邏輯 var timer; var foo = function() { timer && clearTimeout(timer); timer = setTimeout(function() { console.log(0); }, 5000); //something }