У меня есть пульсация, которая появляется, когда пользователь нажимает на ссылку.
Проблема в том, что ту же ссылку можно щелкнуть и перетащить, чтобы изменить порядок. В этом случае мне не нужно, чтобы пульсатор появлялся. Он должен появиться только в том случае, если он действительно ждет куда-нибудь.
Как я могу с помощью jQuery создать прослушиватель событий, который позволял бы показывать пульсирующее устройство только в том случае, если это щелчок по ссылке , а не щелчок и перетаскивание?
Ответы:
В mousedown начните установку состояния, если событие mousemove запущено, запишите его, наконец, при mouseup проверьте, двигалась ли мышь. Если он сдвинулся, значит, мы тянули. Если мы не переехали, это щелчок.
Вот демонстрация: http://jsfiddle.net/W7tvD/1399/
источник
mousemove
прежнему будут запускаться хотя бы один раз даже без какого-либо движения, поэтому я изменил его, чтобы увеличить переменную при движении, а затем проверить определенный порог наmouseup
jsfiddle.net/W7tvD/1649 Теперь работает для меня как шарм, спасибо!По какой-то причине вышеупомянутые решения у меня не работали. Я пошел со следующим:
Вы можете настроить предел расстояния до любого значения или даже полностью довести его до нуля.
источник
sqrt
не медленный и не повлияет на UX, даже если вы делали это сотни раз.Просто сделайте это с помощью jQuery UI!
источник
В этом решении используются функции «on» и «off» для привязки и отмены привязки события mousemove (привязка и отключение устарели). Вы также можете обнаружить изменение положения мыши по оси x и y между двумя событиями перемещения мыши.
источник
Попробуйте это: он показывает, когда находится состояние «перетаскивание». ;) ссылка на скрипку
источник
Я отошел от принятого ответа, чтобы запускать только тогда, когда щелчок удерживается и перетаскивается .
Моя функция работала, когда я не удерживал мышь. Вот обновленный код, если вам также нужна эта функция:
источник
Самый простой способ - это коснуться начала, коснуться перемещения и коснуться конца. Это работает как для ПК, так и для сенсорных устройств, просто проверьте это в документации jquery и надеюсь, что это лучшее решение для вас. удачи
источник
Плагин jQuery на основе ответа Симена Эххолта. Я назвал это одним щелчком.
В использовании:
^^
источник
Убедитесь, что вы установили перетаскиваемый элемент значение false, чтобы у вас не было побочных эффектов при прослушивании событий mouseup:
Затем вы можете использовать jQuery:
источник
Вам нужно установить таймер. Когда таймер истечет, запустите вибратор и зарегистрируйте щелчок. Когда происходит перетаскивание, очистите таймер, чтобы оно никогда не завершалось.
источник
Если вы используете jQueryUI - есть событие onDrag. В противном случае прикрепите слушателя к mouseup (), а не click ().
источник
источник
Вам не нужно настраивать переменную, вы можете просто установить, перемещается ли она в атрибуте данных
источник
Мне нужна была функция, которая всегда отслеживает положение мыши и обнаруживает перетаскивание влево, вправо, вверх и вниз. Он также не срабатывает при нажатии, но требует перемещения минимум 15 пикселей
источник