2013-01-03 98 views
2

可能重複:
How to distinguish between left and right mouse click with jQueryjQuery的點擊鼠標右鍵格

如何打開上下文meniu當我在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> 

UPDATE:

的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

嗨,我在這篇文章看,但不明白...我是新的jquery ...任何幫助? – andys

回答

2

click只能通過鼠標左鍵單擊來觸發,而mousedown可以通過鼠標左鍵/中鍵/右鍵單擊來觸發。因此,只需在代碼中將click替換爲mousedown,然後通過檢查event.which來區分左/中/右鍵。例如,請檢查How to distinguish between left and right mouse click with jQuery

BTW:檢查此link可能會幫助您瞭解click,mousedownmouseup事件之間的關係。而這篇文章:Javascript Madness: Mouse Events也許也有幫助。作爲一個經驗法則,是更好處理低級別的事件,如mousedownmouseup代替高層次的事件,如clickdblclick當你需要對鼠標事件更多的控制。

還有一個問題是,你在HTML把多餘的「#」 mydiv之前。

更新:根據您的新需求,您可以添加以下代碼,以避免事件傳播。

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

謝謝你的回覆,我做了但沒有正常工作。我在裏面有一個按鈕,當我想點擊它時,div淡出......所以mousedown不好? – andys

+0

剛剛發現你在HTML中的'mydiv'之前加了一個額外的「#」。 –

+0

請幫我...因爲我輸了.. – andys