Когда следует использовать return false в функции jquery?
Я нашел много таких функций, как этот:
$(function() {
$("body a").click(function() {
alert(this.innerHTML);
return false;
});
});
В чем разница между this
и $(this)
в jquery?
У всех есть строка return false;
- я не знаю, когда я должен использовать return false
в функции jquery и не знаю, как ее использовать?
Ответы
Ответ 1
В соответствии с jQuery Events: Stop (Mis) Использование Return False (архивная ссылка), возврат false
выполняет три задачи при вызове:
- event.preventDefault();
- event.stopPropagation();
- Остановка выполнения обратного вызова и возврат немедленно при вызове.
Единственное действие, необходимое для отмены поведения по умолчанию, - preventDefault()
. Выдача return false;
может создать хрупкий код. Обычно вам нужно только следующее:
$("a").on( 'click', function (e) {
// e == our event data
e.preventDefault();
});
И во-вторых, "this" является элементом DOM в javascript, а "$ (this)" является элементом jQuery
который ссылается на элемент DOM. Подробнее о теме jQuery this: demystified.
Ответ 2
Вы нажимаете на якорь, поведение по умолчанию которого должно перемещаться где-то. Возвращение false может быть попыткой предотвратить навигацию и сохранить пользователя на текущей странице/просмотре.
Ответ 3
В области обработчика кликов this
- это развернутый элемент DOM. $(this)
обертывает его и возвращает элемент jQuery. Общепринятой практикой является обернуть это один раз и сделать его доступным в пределах области that
или часто $this
(префикс имен переменных с $является условным обозначением элемента jQuery).
Таким образом, ваш пример можно записать как
$(function() {
$("body a").click(function() {
var $this = $(this);
alert($this.html());
return false;
});
});