LINUX.ORG.RU

[javascript] Разница между двойным щелчком и выделением.


0

1

Можно ли как-то отделить друг от друга двойной щелчок по элементу (клик-клик) и двойной щелчок с последующим выделением (клик-зажатие мыши-перетаскивание-отпускание)? Желательно, чтобы способ был кроссбраузерным.
Дело в том, что желательно выполнять некоторые действия при простом двойном клике, но не выполнять их при двойном клике с одновременным выделением мышью.

★★★

ну какбе можно ловить дабл-клик (http://api.jquery.com/dblclick/ например), записывать в какую-нибудь глобальную переменную время события; затем повесить на селект (http://api.jquery.com/select/) обработчик, который смотрит когда был в последний раз вызван дабл-клик, если очень недавно, значит двойной щелчек повлек за собой выделение.
так пойдет?

anonymous ()
Ответ на: комментарий от anonymous

>так пойдет?
Спасибо, скорее всего да. Возможности проверить и проэкспериментировать сейчас, к сожалению, нет.

unikoid ★★★ ()
Ответ на: комментарий от anonymous

>The select event is sent to an element when the user makes a text selection inside it. This event is limited to <input type=«text»> fields and <textarea> boxes.
Так что не подошло.

unikoid ★★★ ()
Ответ на: комментарий от SOmni

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

unikoid ★★★ ()
Ответ на: комментарий от unikoid

Смотря какой элемент. Тогда тебе правильно говорят - таймер на щелчёк + отслеживай позицию курсора от начала до конца событий.

SOmni ★★ ()

Сделал вроде бы довольно просто и в общем-то работоспособно, на первый взгляд. Ловим mousedown, запоминаем позицию, если поймали dblclick - проверяем совпадение позиции с последним mousedown'ом. Вроде бы работает.
Всем спасибо за ответы.

unikoid ★★★ ()
Ответ на: комментарий от anonymous

>а если у пользователя руки трясутся и второй клик в дабле чуть сдвинулся? :)
Я думаю, ничто не помешает такому пользователю нажать ссылку рядом с той же функциональностью. А учитывая, что все нормальные браузеры отправляют mousedown при каждом клике в дабле, то есть запомнится позиция как раз при втором, такого пользователя даже не жалко.

unikoid ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.