Непрерывное событие щелчка мыши - PullRequest
6 голосов
/ 06 июля 2011

Есть ли какое-либо событие, генерируемое непрерывным щелчком мыши, т.е. не отпусканием кнопки мыши 1? Если нет, пожалуйста, дайте мне знать.

Спасибо и всего наилучшего.

Ответы [ 5 ]

18 голосов
/ 06 июля 2011

Событие mousedown запускается при нажатии кнопки мыши. Если вы ищете событие, которое запускается несколько раз, пока кнопка нажата, вам не повезло, но вы можете использовать событие mousedown для многократного выполнения действия и остановиться, когда событие mouseup сработало.

Например, вы можете использовать функцию setInterval для многократного вызова функции, когда кнопка мыши нажата, а затем использовать clearInterval для остановки, когда кнопка мыши отпущена. Вот пример (с использованием jQuery):

var interval;
$("#elementToClick").mousedown(function() {
    interval = setInterval(performWhileMouseDown, 100);
}).mouseup(function() {
    clearInterval(interval);  
});
function performWhileMouseDown() {
    $("#output").append("<p>Mouse down</p>");
}

Вы можете увидеть это в этом примере скрипты .

2 голосов
/ 06 июля 2011

Существует плагин JQuery: LongClick

Longclick - нажатие и удержание специальной кнопки «длинный щелчок мыши» для jQuery 1.4.x.

Событиесрабатывает, когда кнопка мыши остается нажатой в течение (настраиваемого) количества секунд, пока указатель находится на бланке.

0 голосов
/ 16 января 2017

Да, вы можете сделать это, используя onmousemove= movefunction(event):

Что я сделал для решения этой проблемы:

Сначала создайте событие onmousedown(), которое при срабатывании устанавливает глобальную переменную 1.

Во-вторых, создайте событие onmouseup(), которое при запуске задает для этой глобальной переменной значение 0.

Затем используйте событие onmousemove() для вызова в div, где я хочу, чтобы происходило поведение мыши, но только если глобальная переменная, которую мы установили ранее, установлена ​​на 1.

пример использования onmousemove(): http://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_onmousemove

Готово.

0 голосов
/ 06 июля 2011

В соответствии с spec ,

Щелчок определяется как mousedown и mouseup в том же месте экрана.Последовательность этих событий: mousedown, mouseup, click

Так что нет, «непрерывного щелчка» нет, потому что щелчок - это конкретное событие, возникающее в результате последовательности действий.

То, что вы, вероятно, хотите сделать, это получить mousedown, установить таймер, и, если в течение некоторого времени не происходит ни mouseup, ни mousemove, вызовите какое-либо поведение.

0 голосов
/ 06 июля 2011

Нет такого события.

Что бы вы могли реализовать для достижения этой цели, это функция, которая оценивает время, прошедшее между (первым) щелчком мыши и следующим выпуском мыши.

Имея заданный диапазон, вы можете установить, как долго следует нажимать кнопку, прежде чем она будет считаться действительной в вашей логике.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...