jquery右键单击div

时间:2013-01-03 08:51:20

标签: jquery right-click

  

可能重复:
  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>

1 个答案:

答案 0 :(得分:3)

click仅通过鼠标左键单击触发,而mousedown可以通过左/中/右鼠标点击触发。因此,只需在代码中将click替换为mousedown,并通过选中event.which来区分左/右/右键单击。请查看How to distinguish between left and right mouse click with jQuery以获取示例。

顺便说一句:选中此link可以帮助您了解clickmousedownmouseup事件之间的关系。这篇文章:Javascript Madness: Mouse Events也许也有帮助。根据经验,当您需要更多控制权时,最好处理mousedownmouseup等低级别事件,而不是clickdblclick等高级别事件。鼠标事件。

另一个问题是你在HTML中mydiv之前放了一个多余的“#”。

更新:根据您的新要求,您可以添加以下代码以避免事件传播。

$("#good_button").mousedown(function(e) {
    e.stopPropagation(); // avoid triggering its parent
    div = $("#hide").fadeToggle(300);
});