有沒有辦法禁用(使用CSS,JS或jQuery)雙擊給定的元素?爲Opera中的元素禁用doubleclick事件
Opera的問題在於,當我點擊某個元素的速度過快時,它會顯示一個菜單。請注意,我知道如何爲我禁用此功能。我希望能夠禁用所有使用腳本的用戶。
有問題的按鈕是「下一個」/「上一個」按鈕,我使用它們的輸入類型的圖像,但同樣發生在「a」。
有沒有辦法禁用(使用CSS,JS或jQuery)雙擊給定的元素?爲Opera中的元素禁用doubleclick事件
Opera的問題在於,當我點擊某個元素的速度過快時,它會顯示一個菜單。請注意,我知道如何爲我禁用此功能。我希望能夠禁用所有使用腳本的用戶。
有問題的按鈕是「下一個」/「上一個」按鈕,我使用它們的輸入類型的圖像,但同樣發生在「a」。
它turended了,我需要這樣的:
/**
Disable text selection by Chris Barr, of chris-barr.com
*/
$.fn.disableTextSelect = function() {
return this.each(function(){
if($.browser.mozilla){//Firefox
$(this).css('MozUserSelect','none');
}else if($.browser.msie){//IE
$(this).bind('selectstart',function(){return false;});
}else{//Opera, etc.
$(this).mousedown(function(){return false;});
}
});
}
然後我可以在我的按鈕元素這樣的禁用文本選擇:
$(function(){ $('input[type=image]').disableTextSelect(); });
現在我可以點擊按鈕快速地獄和一切正常:-)。
JavaScript會爲你做到這一點。
DOMElement.ondblclick = (function() {return false;})();
你不能有附加在相同的元素,因爲當你dblclick
這兩個事件都將被觸發click
和dblclick
事件處理程序。爲了使它工作,幾乎沒有工作。
這可以幫助你
Need to cancel click/mouseup events when double-click event detected
你的問題看有一個簡單的解決方案。在單擊事件處理程序中,一旦單擊事件處理程序,就會設置禁用的屬性或某個類名稱(禁用)。在執行代碼之前在處理程序中檢查此屬性或類名稱。如果它存在,那麼不要做任何事情。在某段時間刪除這個分類或類名稱後。試試這個
$("selector").click(function(){
var $this = $(this);
if(!$this.hasClass("disabled")){
//Do you stuff here
$this.addClass("disabled");
setTimeout(function(){
$this.removeClass("disabled");
}, 200);
}
});
不,不起作用:/。 – Nux
它是否上傳到任何地方,以便我可以玩一玩? –
您可以在頁面上使用alt屬性創建輸入類型圖像,並快速點擊幾次。這在Opera當然要做,以檢查我正在談論的行爲。 – Nux