1. 程式人生 > >攔截滑鼠頻繁重複點選事件

攔截滑鼠頻繁重複點選事件

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); }