JackShcherbakov
@JackShcherbakov

Как работает return false;? Зачем он нужен?

В книге по Js и jQuery дошел до объектов событий и наткнулся на return false;

Пожалуйста объясните, что написано ниже. Сколько ни пытался понять, так и ничего не получилось.
В книге представлено следующее:

Некоторые элементы HTML-кода имеют заранее запрограммированные реакции на события. Например, при щелчке по ссылке обычно загружается новая веб-страница; щелчок по кнопке подтверждения
формы отсылает данные на веб-сервер для обработки. Иногда вы хотите,
чтобы браузер повел себя не так, как обычно. Допустим, при подтверждении формы (событие submit ()) вы можете пожелать остановить ее отправку, пока посетитель не внесет в форму недостающих важных данных.

Функция prevent Default () позволяет отменить нормальное поведение браузера. Она является частью объекта события (см. предыдущий раздел), поэтому доступ к ней осуществляется в рамках функции, управляющей событием. Допустим, на странице есть ссылка с идентификатором menu. Она указывает на другую страницу меню (чтобы посетитель, у которого отключен JavaScript, мог попасть на эту страницу меню). Однако вы добавили умный код JavaScript, и если посетитель щелкает по ссылке, меню появляется на той же странице. Но, как правило, браузер все же проследует по ссылке, поэтому вам необходимо отменить его обычное поведение следующим образом:

$ (1#menu1) .click(function(evt) {
// "Умный" JavaScript-код вставляется сюда
evt.preventDefault(); // не переходи по ссылке
}) ;

Другой вариант — это просто возвращение значения «ложь» как
результат выполнения функции события. Например, следующий код
функционально аналогичен коду, приведенному выше:

$(1#menu1) .click(function(evt){
// "Умный" JavaScript-код вставляется сюда
return false; // не переходи по ссылке
}) ;
  • Вопрос задан
  • 16250 просмотров
Решения вопроса 1
lazalu68
@lazalu68
Salmon
Default browser action

Ну, у вас существует два способа сообщить браузеру, что вы хотите отменить дефолтное действие для некоторого события, в данном случае отменить переход по ссылке: вызвать event.preventDefault() или вернуть false из функции обработчика. Второй работает только если вы назначаете обработчик с помощью атрибута onсобытие вот так:

<a href="//google.com" onclick="return false">google</a>


Или так:

<a href="//google.com">google</a>

<script>
document.getElementsByTagName('a')[0].onclick = function() {
	return false;
}
</script>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
vahe_2000
@vahe_2000
Я думаю, event.preventDefault() является w3c указанный способ отмены событий.

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

Войдите, чтобы написать ответ

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