如何使用jQuery获取单击的鼠标按钮?
$('div').bind('click', function(){
alert('clicked');
});
这是由鼠标右键和鼠标左键触发的,能捕捉鼠标右键的方式是什么?如果以下内容存在,我将很高兴:
$('div').bind('rightclick', function(){
alert('right mouse button is pressed');
});
如何使用jQuery获取单击的鼠标按钮?
$('div').bind('click', function(){
alert('clicked');
});
这是由鼠标右键和鼠标左键触发的,能捕捉鼠标右键的方式是什么?如果以下内容存在,我将很高兴:
$('div').bind('rightclick', function(){
alert('right mouse button is pressed');
});
With jquery you can use event object type
jQuery(".element").on("click contextmenu", function(e){
if(e.type == "contextmenu") {
alert("Right click");
}
});
$(document).ready(function () {
var resizing = false;
var frame = $("#frame");
var origHeightFrame = frame.height();
var origwidthFrame = frame.width();
var origPosYGrip = $("#frame-grip").offset().top;
var origPosXGrip = $("#frame-grip").offset().left;
var gripHeight = $("#frame-grip").height();
var gripWidth = $("#frame-grip").width();
$("#frame-grip").mouseup(function (e) {
resizing = false;
});
$("#frame-grip").mousedown(function (e) {
resizing = true;
});
document.onmousemove = getMousepoints;
var mousex = 0, mousey = 0, scrollTop = 0, scrollLeft = 0;
function getMousepoints() {
if (resizing) {
var MouseBtnClick = event.which;
if (MouseBtnClick == 1) {
scrollTop = document.documentElement ? document.documentElement.scrollTop : document.body.scrollTop;
scrollLeft = document.documentElement ? document.documentElement.scrollLeft : document.body.scrollLeft;
mousex = event.clientX + scrollLeft;
mousey = event.clientY + scrollTop;
frame.height(mousey);
frame.width(mousex);
}
else {
resizing = false;
}
}
return true;
}
});
$("body").on({
click: function(){alert("left click");},
contextmenu: function(){alert("right click");}
});
通过检查which
鼠标事件中事件对象的属性,可以轻松判断按下了哪个鼠标按钮:
/*
1 = Left mouse button
2 = Centre mouse button
3 = Right mouse button
*/
$([selector]).mousedown(function(e) {
if (e.which === 3) {
/* Right mouse button was clicked! */
}
});
有很多很好的答案,但是我只想在使用时谈一下IE9和IE <9之间的一个主要区别event.button
。
根据旧的Microsoft规范,event.button
该代码不同于W3C使用的代码。W3C仅考虑3种情况:
event.button === 1
event.button === 3
event.button === 2
但是,在较旧的Internet Explorer中,Microsoft稍微按下了按钮,有8种情况:
event.button === 0
或000event.button === 1
或001event.button === 2
或010event.button === 3
或011event.button === 4
或100event.button === 5
或101event.button === 6
或110event.button === 7
或111尽管从理论上讲这是应该起作用的事实,但是Internet Explorer从来没有支持同时按下两个或三个按钮的情况。我之所以提到它,是因为W3C标准甚至在理论上都不能支持这一点。
$.event.special.rightclick = {
bindType: "contextmenu",
delegateType: "contextmenu"
};
$(document).on("rightclick", "div", function() {
console.log("hello");
return false;
});