Подтвердить что ты не робот

Какая разница между событиями "mouseup" и 'click'?

Используя jQuery, я часто предпочитаю использовать события mousedown и mouseup для нажатых кнопок.

Однако в каждом случае я использовал событие mouseup, поэтому привязка события click, казалось, давала идентичные результаты.

Есть ли существенная разница между двумя этими методами ниже?

// Method 1
$('.myButton').bind('click', callback);

// Method 2
$('.myButton').bind('mouseup', callback);

Обратите внимание, что я ищу техническое объяснение различий между использованием обоих методов. Это не имеет никакого отношения к вопросу, который был отмечен как обман: Дифференцировать клик против mousedown/mouseup

4b9b3361

Ответ 1

С помощью события mouseup вы можете щелкнуть в другом месте на экране, удерживать нажатой кнопку мыши и переместить указатель на элемент mouseup, а затем отпустить указатель мыши.

Событие с кликом требует, чтобы в этом элементе выполнялось событие mousedown и mouseup.

Обычное ожидание состоит в том, что для клика требуется как событие mousedown, так и mouseup, поэтому я рекомендую событие click.

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

Ответ 2

Я понимаю, что "click" скрывает множество сложностей (например, убедитесь, что mousedown/up происходит на одном и том же элементе, отменив ESC/щелчок правой кнопкой мыши). Использование "click" над "mousedown/up" должно быть предпочтительным.

Один сценарий, в котором "click", похоже, не работает, когда приложение обновляет контент очень часто таким образом, что заменяются элементы DOM. В этом случае "click" не будет запущен, и это может привести к плохой работе с клиентами.

Ответ 3

Самая большая разница, которая влияет на способ кодирования; click event на a tag отвечает за изменение URL-адреса. Событие mousedown, или mouseup достигнет этого