[英]How to respond to mouse button clicks in Javascript?
我希望能夠編寫代碼以(分別)響應以下事件:
Javascript中是否有一種我可以響應這些事件的內置方法,還是需要使用一個庫(最好是jQuery)?
$('#your_element').mousedown(function(event) {
switch (event.which)
{
case 1:
// left mouse
break;
case 2:
// middle mouse
break;
case 3:
// right mouse
break;
default:
// some sort of bizarre mouse! fallback
break;
}
});
這是我使用的功能:
var ieButtons = { "1": "left", "2": "right", "3": "leftright", "4": "middle" };
function getMouseButton(evt) {
if (typeof evt.which == "number") {
// Non-IE case. Works in everything apart from Opera < 8
return (evt.which < 2) ? "left" :
( (evt.which == 2) ? "middle" : "right" );
} else {
// IE case
return ieButtons[evt.button] || "unknown";
}
}
document.onmousedown = function(evt) {
evt = evt || window.event;
window.alert( getMouseButton(evt) );
};
揚·沃爾特(Jan Wolter)的關於鼠標事件的文章似乎不如他在關鍵事件上的文章知名,但同樣出色,並將quirksmode推上了高深的帽子: http : //unixpapa.com/js/mouse.html
僅僅看了一下jQuery代碼,就好像它正確地規范了事件的which
屬性(1代表左,2代表中,3代表右),盡管沒有IE的好功能,它可以報告多個同時按下的按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.