Можно проверить состояние кнопки мыши (нажата или отпущена). Я знаю, что это цель обработки событий в jquery, но мне интересно, можно ли выполнять функцию, если кнопка мыши не нажата без необходимости изменения положения кнопки (нажата для отпускания или наоборот)?Функция boolean для определения положения кнопки мыши
ответ
Try ниже код, DEMO здесь
$(document).mousedown (function() {
$('#result').text('Pressed');
}).mouseup (function() {
$('#result').text('Released');
});
Вы можете использовать mousedown
и mouseup
событие для обнаружения измененных событий мыши. Это событие должно быть связано с window
. Demo: http://jsfiddle.net/uwzbn/
var mouseState = (function(){
var mousestatus = 0;
$(window).mousedown(function(e) {
mousestatus = e.which;
}).mouseup(function(e){
mousestatus = 0;
});
return function() {
return mousestatus;
}
})();
Эта функция возвращает четыре возможных значения:
0 Mouse released false
1 Left click true
2 Middle click true
3 Right click true
В логическом контексте значение функции Возврата оценивает ложь, когда мышь не вниз. Когда мышь нажата, вы можете прочитать, какую клавишу мыши нажата (в качестве бонуса).
Интересно, если это слишком умно для вашего же блага, если я нажму 2 кнопки и отпустите один, состояние будет равно 0, даже если у меня еще одна кнопка вниз : p – Esailija
@Esailija Все текущие ответы страдают от этой проблемы. Afaik, нет надежного решения для этого: возможно также и обратное, вы можете открыть контекстное меню и выпустить мышь внутри меню. Состояние мыши тогда застряло бы в 3. –
, и вы могли бы преодолеть его более сложным кодом (гораздо менее сложным, если вы просто отслеживаете логическое), но это контекстное меню не может быть преодолено. – Esailija
$(function() {
//setup flag for the state of the mouse button and create an object that converts an event type into a boolean for the flag
var mousePressed = false,
mouseConvert = {
mousedown : true,
mouseup : false
};
//bind to the document's mousedown and mouseup events to change the flag when necessary
$(document).on('mousedown mouseup', function (event) {
//set the flag to the new state of the mouse button
mousePressed = mouseConvert[event.type];
//if you only want to watch one mouse button and not all of them then
//you can create an if/then statement here that checks event.which
//and only updates the flag if it is the button you want, check-out Rob W.'s
//answer to see the different values for event.which with respect to the mouse
});
//now you can check the value of the `mousePressed` variable, if it is equal to `true` then the mouse is currently pressed
});
- 1. определения положения мыши на окно фокус события
- 2. конструирование схемы для определения положения
- 3. Настройка положения мыши
- 4. Значения положения мыши для SendInput
- 5. Нажатие кнопки мыши, функция вызова?
- 6. Скрытие кнопки как функция положения с InfiniteViewPager
- 7. Настройка положения мыши?
- 8. Запирание положения мыши
- 9. Смещение положения мыши XNA
- 10. Альтернативы установке положения мыши
- 11. Отображение положения мыши
- 12. обновления положения мыши Постепенно
- 13. Получение положения курсора мыши и состояния кнопки в Windows
- 14. Использование рекурсии для определения положения минимального значения
- 15. Перемещение кнопки wpf на основе положения мыши, но она мигает
- 16. Поиск положения мыши из события колеса мыши
- 17. boolean для определения элемента в массиве
- 18. Используйте boolean метод для определения вывода
- 19. Использование положения мыши для управления анимацией персонажей
- 20. C# LabelLink обнаружение LinkArea для положения мыши
- 21. Масштабирование положения мыши в OpenGl
- 22. Изменение положения мыши в GLUT?
- 23. Отправка положения мыши над интернетом
- 24. Поиск положения мыши относительно панели
- 25. Как назначить boolean int для кнопки переключения
- 26. Обнаружение положения мыши над iframes
- 27. Как изменить курсор на основе положения мыши?
- 28. Подсказка Kendo относительно положения мыши?
- 29. Настройка положения мыши без System.Windows.Forms
- 30. Элемент положения jQuery относительно мыши
Нет, это на самом деле не имеет большого смысла. Браузер не предоставляет такую модель, которая постоянно контролирует все. Скорее, состояние мира захватывается, когда происходит событие, и передается любым зарегистрированным обработчикам. Кроме того, информация о событии, как правило, относится только к типу события. – Pointy
Можете ли вы перефразировать. Я читал это четыре раза и до сих пор не понимаю. (может быть, это только я) – karim79
Не понял ли я, или вы хотите получить состояние кнопки мыши в любое время (не только во время нажатия или отпускания кнопки мыши)? – Jasper