攔截滑鼠頻繁重複點選事件
阿新 • • 發佈:2018-12-20
1.頻繁重複點選只執行最後一次點選事件
/**
* 頻繁重複點選只執行最後一次點選事件
* @param {ObjectElement} el 元素物件
* @param {Function} fn 點選後執行的函式
*/
function scienceClick(el, fn) {
el.timer = null;
el.addEventListener('click', function() {
clearTimeout(this.timer);
this.timer = setTimeout(function() {
fn && fn();
}, 300);
}, false);
}
2.頻繁重複點選只執行第一次點選事件
/**
* 頻繁重複點選只執行第一次點選事件
* @param {ObjectElement} el 元素物件
* @param {Function} fn 點選後執行的函式
*/
function scienceClick(el, fn) {
el.flag = true;
el.timer = null;
el.addEventListener('click', function() {
clearTimeout(el.timer) ;
if (el.flag) {
fn && fn();
el.flag = false;
}
el.timer = setTimeout(function() {
el.flag = true;
}, 500);
}, false);
}
3.頻繁重複點選每隔1000毫秒才執行一次點選事件
/**
* 頻繁重複點選每隔1000毫秒才執行一次點選事件
* @param {ObjectElement} el 元素物件
* @param {Function} fn 點選後執行的函式
*/
function scienceClick(el, fn) {
el.flag = true;
el.timer = null;
el.addEventListener('click', function() {
if (!el.flag) {
return false;
}
fn && fn();
el.flag = false;
el.timer = setTimeout(function() {
el.flag = true;
clearTimeout(el.timer);
}, 1000);
}, false);
}