Я строй игрыКак определить правую кнопку мыши + левый клик
И мне нужно что-то делать, когда пользователь нажимает на правой кнопке мыши, держит его и затем нажимает левую кнопку
Как определить это поведение?
Я строй игрыКак определить правую кнопку мыши + левый клик
И мне нужно что-то делать, когда пользователь нажимает на правой кнопке мыши, держит его и затем нажимает левую кнопку
Как определить это поведение?
JSfiddle: https://jsfiddle.net/mkarajohn/pd725ch6/5/
var rightMouseClicked = false;
function handleMouseDown(e) {
//e.button describes the mouse button that was clicked
// 0 is left, 1 is middle, 2 is right
if (e.button === 2) {
rightMouseClicked = true;
} else if (e.button === 0) {
//Do something if left button was clicked and right button is still pressed
if (rightMouseClicked) {
console.log('hello');
//code
}
}
console.log(rightMouseClicked);
}
function handleMouseUp(e) {
if (e.button === 2) {
rightMouseClicked = false;
}
console.log(rightMouseClicked);
}
document.addEventListener('mousedown', handleMouseDown);
document.addEventListener('mouseup', handleMouseUp);
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
});
спасибо, за что вы используете preventDefault()? –
Нет особой причины, просто добавил их в какой-то момент и забыл о них. –
Только что обновил ответ, включив функцию preventDefault, чтобы контекстное меню не отображалось по правому клику. –
Вы можете попробовать этот вариант.
window.oncontextmenu = function() {
showCustomMenu();
return false; // cancel default menu
}
на правой кнопке мыши каждый браузер имеет меню по умолчанию для освежающей страницы, печати, сохранения и многих других, но вы можете попробовать это и можете быть это поможет предотвратить действие по умолчанию и добавить свой обычай. напишите ответ, если он вам поможет.
Это событие не поддерживается повсеместно и не активирует отключенные элементы в IE. –
Хорошо, спасибо за информирование :) – George
Хиэ
проверка кода ниже
<!doctype html>
<html lang="en">
<head>
<input type='button' value='Click Me!!!' id='btnClick'/>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<script>
$(document).ready(function() {
$('#btnClick').mousedown(function(event){
switch (event.which) {
case 1:
alert('Left mouse button pressed');
break;
case 2:
alert('Middle mouse button pressed');
break;
case 3:
alert('Right mouse button pressed');
break;
default:
break;
}
});
});
</script>
</body>
</html>
Для получения дополнительной справки см http://www.jquerybyexample.net/2011/04/find-which-mouse-button-clicked-using.html
U se MouseEvent.buttons
в вашем обработчике событий.
<element>.addEventListener("mousedown", function(event){
if ((event.buttons & 3) === 3){
//Do something here
}
}, true);
Это, однако, последнее, хотя, возможно, вы захотите реализовать метод возврата, записывая состояние кнопок мыши.
для правильного использования мыши oncontextmenu
и оставил только настроить click
, просто отключить их поведение по умолчанию, если вы хотите тоже например:
var left = 0,
right = 0;
document.onclick = function() {
console.log(++left);
return false;
};
document.oncontextmenu = function() {
console.log(++right);
return false;
};
событие 'click', созданное после нажатия кнопки пользователя. Автор хочет получить уведомление, когда обе кнопки удерживаются, я думаю – nekavally
Добро пожаловать на SO. Пожалуйста, посетите [помощь], чтобы узнать, как спросить. Подсказка: Показать код. Я на самом деле думал, что это дубликат http://stackoverflow.com/questions/1206203/how-to-distinguish-between-left-and-right-mouse-click-with-jquery – mplungjan