您好,我想在右键单击时使用 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");
}
});
还有另一种方法可以检测双击右键,该方法不需要摆弄计时器或手动跟踪点击计数。使用.detail
a 中事件对象的属性mouseup https://developer.mozilla.org/en-US/docs/Web/Reference/Events/mouseup or mousedown https://developer.mozilla.org/en-US/docs/Web/Reference/Events/mousedown event. .detail
持有点击次数 http://www.w3.org/TR/DOM-Level-3-Events/#current-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
.
这是一个工作示例 http://jsfiddle.net/UselessCode/DqQ37/1/.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)