禁用Opera中元素的双击事件

时间:2011-08-26 10:22:29

标签: javascript jquery opera double-click

有没有办法禁用(使用CSS,JS或jQuery)双击给定元素?

Opera的问题在于,当我单击元素太快时,它会显示一个菜单。请注意,我知道如何为我禁用此功能。我希望能够为使用该脚本的所有用户禁用此功能。

有问题的按钮是“下一个”/“上一个”按钮,我使用输入类型图像,但“a”也是如此。

3 个答案:

答案 0 :(得分:4)

我确实需要这个:

/**
    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(); });

现在我可以快速点击按钮,一切正常: - )。

答案 1 :(得分:1)

您不能在同一元素上附加clickdblclick事件处理程序,因为当您dblclick两个事件都将被触发时。为了使其工作,几乎没有工作。

这可能对您有所帮助

Need to cancel click/mouseup events when double-click event detected

看看你的问题有一个简单的解决方案。在Click事件处理程序中单击它后,设置禁用的属性或某个类名(禁用)。在为此属性或类名称执行代码checck之前的处理程序中。如果它存在然后什么都不做。一段时间后删除此attribtue或类名称。试试这个

$("selector").click(function(){
   var $this = $(this);
   if(!$this.hasClass("disabled")){


       //Do you stuff here


       $this.addClass("disabled");

       setTimeout(function(){
         $this.removeClass("disabled");
       }, 200);  

   }
});

答案 2 :(得分:0)

JavaScript会为你做到这一点。

DOMElement.ondblclick = (function () {return false;})();