2015-09-25 160 views
2

我有兩個按鈕,它們使用Javascript來調用它們的控制旋轉木馬和其他一些動作的函數。Javascript按鈕,防止鼠標雙擊

我只想禁用用戶雙擊按鈕的能力。

這裏是我的代碼:

var onRightArrow = function(e) { 
    //alert("Right"); 
    if (unitCtr<=unitTotal) { 
     unitCtr++; 
     TweenLite.to(productTxt, 0.2, {y: "-="+unitHeight }); 
     TweenLite.to(productImg, 0.2, {y: "-="+unitHeight }); 
    } 
    hideArrows(); 
}, onLeftArrow = function(e) { 
    //alert("Left"); 
    if (unitCtr>1) { 
     unitCtr--; 
     TweenLite.to(productTxt, 0.2, {y: "+="+unitHeight }); 
     TweenLite.to(productImg, 0.2, {y: "+="+unitHeight }); 
    } 
    hideArrows(); 
} 

arrowRight.addEventListener('click', onRightArrow, false); 
arrowLeft.addEventListener('click', onLeftArrow, false); 

我知道的代碼DBLCLICK行,但不完全知道如何應用到禁止從鼠標的雙擊動作。

當用戶現在doubleclicks,它misplaces在這就是爲什麼我要刪除的DBLCLICK的影響按鈕的功能轉盤元素的定位。

在此先感謝您的任何建議。請避免在JQuery中提供答案。

更多代碼: http://codepen.io/anon/pen/QjGydw

+0

只覆蓋雙擊事件並使其無效? – Steve

+0

@Steve或'返回false'。 – divy3993

+1

@ divy3993我認爲返回false只適用於jQuery,糾正我,如果我錯了 – Steve

回答

0

我這解決了我自己,而答案是比較複雜的,是任何人都正在尋找應用聽衆禁用雙擊的能力,它在這裏:

(arrowRight和arrowLeft是由ID定義的變量)

arrowRight.addEventListener('dblclick', function(e){ 
    e.preventDefault(); 
    }); 
    arrowLeft.addEventListener('dblclick', function(e){ 
    e.preventDefault(); 
    }); 

我還創建了在動畫發生時禁用箭頭以防止出現錯誤的函數。動畫完成後重新啓用。函數如下所示:

function disableArrows() { //ADDED NEW FUNCTION TO DISABLE ARROWS 
    arrowRight.removeEventListener('click', onTopArrow, false); 
    arrowLeft.removeEventListener('click', onBottomArrow, false); 
} 

function enableArrows() { //ADDED NEW FUNCTION TO RE-ENABLE ARROWS 
    arrowRight.addEventListener('click', onTopArrow, false); 
    arrowLeft.addEventListener('click', onBottomArrow, false); 
}