Обработчик события может быть привязан к любому <div>
:
$('#target').dblclick(function() {
alert('Handler for .click() called.');
});
Теперь, если дважды щелкнуть на этом элементе, будет выдано предупреждение:
Handler for .dblclick() called.
Мы можем также вызвать событие, когда другой элемент нажат:
$('#other').click(function() {
$('#target').dblclick();
});
После выполнения этого кода, (одиночные) нажатия на Trigger the handler также выдадут сообщения.
Событие dblclick
вызывается только после точной последовательности действий:
- Кнопка мышки нажата, когда курсор находится внутри элемента.
- Кнопка мышки отпущена, когда курсор находится внутри элемента.
- Кнопка мышки снова нажата, когда курсор находится внутри элемента, в пределах временного окна, что зависит от системы.
- Кнопки мышки отпущена, когда курсор находится внутри элемента.
Это нецелесообразно связывать обработчики для обеих событий click
и dblclick
для того же элемента.
Последовательность вызывания событий варьируется от браузера к браузеру, в некоторых вы получите два события click
, а в других только один.
Если интерфейс, который по-разному реагирует на одинарной и двойной клик, нельзя избежать, то событие dblclick
должно быть симулированно в пределах обработчика click
.
Этого можно добиться за счет помещения метки времени в обработчик, а
затем сравнивая текущее время с меткой времени на последующих кликах.
Если разница достаточно мала, мы можем рассматривать в качестве
одинарного нажатия двойное нажатие мышкой.
Примеры
Пример 1
Чтобы выводить в сообщении alert текст «Hello World!» каждый раз при
совершении двойного нажатия по каждому параграфу на странице, следует
сделать:
$("p").dblclick( function () { alert("Hello World!"); });