Почему событие щелчка не останавливается остановкой mousedown / mouseup?

#javascript #jquery

#javascript #jquery

Вопрос:

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

Ответ №1:

Потому что событие щелчка — это наведение курсора мыши, за которым следует наведение курсора мыши. Остановка / поглощение событий-предков не меняет того факта, что они произошли, и произошедшее — это все, что требуется для запуска потомка.

Комментарии:

1. Точнее, это наведение курсора мыши, за которым следует наведение курсора мыши на тот же элемент .

2. Правильно, потому что, если мышь перемещается между ними, это вызовет событие перетаскивания. 🙂

3. Событие перетаскивания (и события mousemove) также может произойти, а может и не произойти, но щелчок будет отправлен только в том случае, если мышь вверх и вниз находится на одном и том же элементе (так было с самого первого графического интерфейса пользователя в 1984 году).

4. Я чувствую, что он не должен запускать щелчок, если мышь перемещается между наведением курсора мыши и наведением курсора мыши, но ваш ответ по-прежнему кажется правильным.