可能重复:
How to distinguish between left and right mouse click with jQuery
当我在div中单击鼠标右键单击时,如何打开上下文菜单。因为当我在div里面用鼠标右键单击它的淡出时?
的Javascript
$("#link").click(function(e){
e.stopPropagation();
div = $("#mydiv").fadeToggle(300);
});
$("#mydiv").click(function(e){
e.stopPropagation();
});
$(document).click(function(e){
$('#mydiv').fadeOut(200);
});
HTML
<a id="link">Click</a>
<div id="mydiv" style="width: 200px; height: 200px;">Hello</div>
更新:
的Javascript
$("#link").click(function(e){
e.stopPropagation();
div = $("#mydiv").fadeToggle(300);
});
$("#good_buttom").click(function(e){
e.stopPropagation();
div = $("#hide").fadeToggle(300);
});
$("#mydiv").mousedown(function(e) {
switch (e.which) {
case 1:
e.stopPropagation();
$('#mydiv').fadeOut(200);
break;
case 2:
alert('2');
break;
case 3:
alert('3');
break;
default:
alert('You have a strange mouse');
}
});
HTML
<a id="link">Click</a>
<div id="mydiv" style="width: 200px; height: 200px;">
<button id="good_button">Click IT</button>
<div id="hide" style="display:none;">Show up.</div>
</div>
答案 0 :(得分:3)
click
仅通过鼠标左键单击触发,而mousedown
可以通过左/中/右鼠标点击触发。因此,只需在代码中将click
替换为mousedown
,并通过选中event.which
来区分左/右/右键单击。请查看How to distinguish between left and right mouse click with jQuery以获取示例。
顺便说一句:选中此link可以帮助您了解click
,mousedown
和mouseup
事件之间的关系。这篇文章:Javascript Madness: Mouse Events也许也有帮助。根据经验,当您需要更多控制权时,最好处理mousedown
或mouseup
等低级别事件,而不是click
或dblclick
等高级别事件。鼠标事件。
另一个问题是你在HTML中mydiv
之前放了一个多余的“#”。
更新:根据您的新要求,您可以添加以下代码以避免事件传播。
$("#good_button").mousedown(function(e) {
e.stopPropagation(); // avoid triggering its parent
div = $("#hide").fadeToggle(300);
});