javascript - 如何在jquery中右键单击添加dbclick()

标签 javascript jquery

您好,我想在右键单击时使用 dblclick(),因为谷歌地图必须放大和缩小。有什么办法可以做到这一点。我已经编写了 dblclick,但现在只需单击鼠标左键即可使用。有关如何执行此操作的任何指示。这是我的代码

         $("div#demo1").dblclick(function(e) {
            //alert(e.getElementById());

            if( (!$.browser.msie && e.button == 0) || ($.browser.msie && e.button == 1) ) {
                alert("Left Mouse Button was clicked on demo1 div!");
                $("div.window").animate({
                'height':'+=20', 'width':'+=20'
                },0,function(){
                    jsPlumb.repaintEverything();
                    jsPlumb.repaintEverything();
                });
                // Left mouse button was clicked (all browsers)
            }
            else if( (!$.browser.msie && e.button == 2) || ($.browser.msie && e.button == 3) ) {
                alert("right click double");
            }
        }); 

最佳答案

还有另一种方法可以检测双击右键单击,该方法不涉及摆弄计时器或手动跟踪点击次数。在 mouseup 中使用事件对象的 .detail 属性或 mousedown事件。 .detail 包含 click count这将告诉您最近发生了多少次点击。如果 .detail === 2 是双击。

// suppress the right-click menu
$('#target').on('contextmenu', function (evt) {
    evt.preventDefault();
});

$('#target').mouseup(function (evt) {
  if (evt.which === 3) { // right-click
    /* if you wanted to be less strict about what
       counts as a double click you could use
       evt.originalEvent.detail > 1 instead */
    if (evt.originalEvent.detail === 2) { 
      $(this).text('Double right-click');
    } else if (evt.originalEvent.detail === 1) { 
      $(this).text('Single right-click');
    }
  }
});

您可能会注意到我正在使用 evt.originalEvent.detail 来访问该属性,而不仅仅是 .detail。这是因为 jQuery 提供了它自己的事件对象版本,其中不包括 .detail,但您可以通过 .originalEvent 访问浏览器返回的原始事件对象。如果您使用纯 JavaScript 而不是 jQuery,您只需使用 evt.detail

这是一个 working example .

关于javascript - 如何在jquery中右键单击添加dbclick(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12098327/

相关文章:

javascript - 将 Javascript 对象编码为 Json 字符串

javascript - 如何添加相同参数中的字符串

jquery - 更改 jQtransform 下拉菜单的字体大小

jquery - 如何限制下拉列表更改而不禁用它

javascript - 幻灯片填充 Div

JQuery Slider 事件处理程序回调

javascript - 动态生成图像的相同位置和动画

javascript - 使用不同的单击事件后,jQuery 单击事件未触发

javascript - 表达-Angular2错误: ENOENT: no such file or directory upon refresh

javascript - 从数组结果中获取两个字段