event.preventDefault () против возврата false

здесь ссылка MS , помеченная как «Метод GetOwner для класса Win32_Process»

2863
задан Brian Tompsett - 汤莱恩 26 August 2019 в 10:09
поделиться

4 ответа

return false из в обработчике событий jQuery фактически то же самое, что и вызов e.preventDefault и e.stopPropagation в переданном объекте jQuery.Event.

e.preventDefault () предотвратит возникновение события по умолчанию, e.stopPropagation () предотвратит всплытие события up и return false сделают и то, и другое. Обратите внимание, что это поведение отличается от обычных (не jQuery) обработчиков событий, в которых, в частности, return false не не останавливает всплытие события.

Источник: Джон Ресиг

Какие преимущества использования event.preventDefault () перед «return false» для отмены щелчка по href?

2770
ответ дан 22 November 2019 в 19:47
поделиться

Я думаю,

event.preventDefault ()

- это указанный w3c способ отмены событий.

Вы можете прочитать это в спецификации W3C на Отмена события .

Также вы не можете использовать return false в каждой ситуации. Если указать функцию javascript в атрибуте href и вы вернете false, то пользователь будет перенаправлен на страницу с записанной ложной строкой.

19
ответ дан 22 November 2019 в 19:47
поделиться

Вы можете повесить множество функций на событие onClick для одного элемента. Как вы можете быть уверены, что ложный выстрелит последним? preventDefault , с другой стороны, определенно предотвратит только поведение элемента по умолчанию.

40
ответ дан 22 November 2019 в 19:47
поделиться

Это не вопрос, как вы его назвали, "JavaScript"; это вопрос относительно дизайна jQuery.

jQuery и ранее связанная цитата из Джона Ресига (в сообщении karim79 ), похоже, являются источником непонимания того, как вообще обработчики событий Работа.

Факт: обработчик события, возвращающий false, предотвращает действие по умолчанию для этого события. Это не останавливает распространение события. Обработчики событий всегда работали таким образом, еще со времен Netscape Navigator.

В документации от MDN объясняется, как работает return false в обработчике событий

То, что происходит в jQuery, отличается от того, что происходит с обработчиками событий. Слушатели событий DOM и «прикрепленные» события MSIE - это совсем другое дело.

Дополнительную информацию см. В attachEvent в MSDN и в документации по событиям W3C DOM 2 .

98
ответ дан 22 November 2019 в 19:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: