【问题标题】:Disable doubleclick event for an element in Opera禁用 Opera 中元素的双击事件
【发布时间】:2011-08-26 19:09:24
【问题描述】:

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

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

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

【问题讨论】:

    标签: javascript jquery opera double-click


    【解决方案1】:

    原来我需要这个:

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

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

    【讨论】:

      【解决方案2】:

      您不能在同一元素上附加clickdblclick 事件处理程序,因为当您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);  
      
         }
      });
      

      【讨论】:

        【解决方案3】:

        JavaScript 会为您做到这一点。

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

        【讨论】:

        • 它是否上传到任何地方,以便我可以玩它?
        • 您可以在页面上创建具有alt属性的输入类型图像并快速单击几次。当然,这必须在 Opera 中完成,以检查我所说的行为。
        猜你喜欢
        • 1970-01-01
        • 2011-05-19
        • 2019-01-23
        • 1970-01-01
        • 2015-09-12
        • 1970-01-01
        • 2022-01-12
        • 1970-01-01
        相关资源
        最近更新 更多