Ответы:
Часто в обработчиках событий, таких как onsubmit, возвращение false - это способ сказать, что событие на самом деле не сработало. Так, скажем, в onsubmitслучае, это будет означать, что форма не представлена.
event.preventDefault()эту функциональность. Я верю, что возвращение ложного значения устарело и больше не всегда работает.
return falseв методе, это что-то меняет?
Я предполагаю, что вы имеете в виду тот факт, что вам часто приходится ставить «возврат ложный»; оператор в ваших обработчиках событий, т.е.
<a href="#" onclick="doSomeFunction(); return false;">...
«Возвращение ложного»; в этом случае браузер не может перейти к текущему местоположению, как указано в href = "#" - вместо этого выполняется только doSomeFunction (). Это полезно, когда вы хотите добавить события в теги привязки, но не хотите, чтобы браузер перепрыгивал вверх и вниз на каждую привязку при каждом клике.
Он используется для остановки распространения события . Вы видите, когда у вас есть два элемента, оба с обработчиком события щелчка (например)
-----------------------------------
| element1 |
| ------------------------- |
| |element2 | |
| ------------------------- |
| |
-----------------------------------
Если вы щелкнете по внутреннему элементу (element2), он вызовет событие щелчка в обоих элементах: 1 и 2. Он называется «Пузыри событий». Если вы хотите обработать событие только в element2, то обработчик события должен вернуть false, чтобы остановить распространение события.
Другим примером будет обработчик ссылки onclick. Если вы хотите, чтобы ссылка перестала работать. Вы можете добавить обработчик onclick и вернуть false. Чтобы остановить распространение события на обработчик по умолчанию.
falseиз обработчика события предотвратит действие по умолчанию, связанное с событием; Вы также можете сделать это с помощью вызова event.preventDefault()или настройки event.returnValue = false(IE); чтобы остановить событие от всплытия, вам нужно позвонить event.stopPropagation()или настроить event.cancelBubble = true(IE)
Я также пришел на эту страницу после поиска "js, когда использовать" return false; " Среди других результатов поиска была страница, которую я нашел гораздо более полезной и понятной, на сайте CSS-Tricks Криса Койера: «Разница между возвращаемым значением false»; и 'e.preventDefault ();'
Суть его статьи:
function () {return false; }
// РАВНО
function (e) {e.preventDefault (); e.stopPropagation (); }
хотя я бы по-прежнему рекомендовал прочитать всю статью.
Обновление: после обсуждения преимуществ использования return false; в качестве замены для e.preventDefault (); & e.stopPropagation (); один из моих коллег отметил, что return false также останавливает выполнение обратного вызова, как описано в этой статье: jQuery Events: Stop (Mis) Using Return False .
function() { return false; }EQUAL TO function(e) { e.preventDefault(); e.stopPropagation(); }, но в чистом js, это не то же самое, function() { return false; }EQUAL TO на function(e) { e.preventDefault(); }самом деле. Это не останавливает распространение.
Я думаю, что лучший вопрос заключается в том, почему в случае, когда вы оцениваете логический набор возвращаемых значений, вы НЕ используете истину / ложь ? Я имею в виду, вы могли бы иметь истину / нуль, истину / -1, другое разное. Javascript «ложные» значения для замены, но зачем вам это делать?
Если вы хотите запустить код javascript из тега привязки, следует использовать обработчик onclick, а не псевдопротокол javascript :. Код javascript, который выполняется внутри обработчика onclick, должен возвращать true или false (или выражение, отличное от true или false) обратно к самому тегу - если он возвращает true, то HREF привязки будет следовать как обычная ссылка. Если он возвращает false, то HREF будет игнорироваться. Вот почему "вернуть ложь"; часто включается в конец кода в обработчик onclick.
Когда в функции вызывается оператор возврата, выполнение этой функции останавливается. Если указано, данное значение возвращается вызывающей функции. Если выражение опущено, вместо него возвращается undefined.
Для получения дополнительной информации посетите страницу документации MDNreturn .
вернуть false, используя только если у вас есть какой-то рабочий в функции (с помощью некоторого теста) или вы хотите остановить какую-то функцию, например, используйте return false в конце «onsubmit»
Кроме того, эта короткая и интересная ссылка для чтения через https://www.w3schools.com/jsref/event_preventdefault.asp
Определение и использование
Метод warnDefault () отменяет событие, если его можно отменить, а это означает, что действие по умолчанию, относящееся к событию, не произойдет.
Например, это может быть полезно, когда:
Clicking on a "Submit" button, prevent it from submitting a form
Clicking on a link, prevent the link from following the URL
Примечание. Не все события можно отменить. Используйте свойство cancellable, чтобы узнать, можно ли отменить событие.
Примечание. Метод protectDefault () не предотвращает дальнейшее распространение события через DOM. Используйте метод stopPropagation () для обработки этого.