Как заставить HTML-элемент по-разному реагировать на одиночный и двойной щелчок? - PullRequest
2 голосов
/ 05 января 2011

Обычно при двойном щелчке по одному клику.Есть ли способ превзойти выполнение onclick и ждать, если второй щелчок произойдет за короткое время?

Ответы [ 2 ]

1 голос
/ 05 января 2011

Нет. (ish)

В отличие от некоторых ОС или устройств, которые ожидают обработки обработчика click до тех пор, пока не пройдет задержка dblclick, при двойном щелчке вы получите два события click. См. Этот тест, например: http://jsfiddle.net/S53mn/

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

  1. жесткий , поскольку задержка двойного щелчка варьируется от ОС к ОС и может зависеть от пользовательских настроек, а
  2. раздражает потому что (если вы учитываете очень длинные возможные таймеры двойного щелчка) будет очень заметная задержка между тем, когда пользователь выполняет один щелчок, и когда вы начинаете обработку это.
1 голос
/ 05 января 2011

Да.

Используйте событие ondblclick для вещей, которые должны происходить только при двойном щелчке.https://developer.mozilla.org/en/DOM/element.ondblclick

Обратите внимание, что обработчик события onClick будет срабатывать даже при двойном щелчке.Если такое поведение нежелательно, вы можете настроить событие на таймер, а затем отменить этот таймер из обработчика событий двойного щелчка.

...