Показать сообщение отдельно
  #10 (permalink)  
Старый 10.04.2010, 13:27
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

Ну, во-первых, для таких вещей используйте, все-таки, addEventListener/attachEvent!

Ну, а во-вторых, Вам таки и не обязатеьно тут использовать событие click.
Поставьте обработчики mouseup, mousedown и mousemove на document, а потом отслеживайте события.
Как это сделать, я расписывал тут и приводил более «живые» примеры тут.

Потом все очень просто. Mousedown на подходящем элементе переводит скрипт в… эм-м… особый режим, когда тот отслеживает mousemove по всему документу, и при этом «гасит» событие через e.preventDefault(). Mouseup, соответственно, это дело завершает.
А теперь мы просто сидим и ждем. Если mousemove случился раньше, чем mouseup, то действет так, будто это драг-н-дроп; если перед mouseup так и не случилось mousemove, то действуем так, будто это клик.
Ответить с цитированием