Когда следует использовать 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;
    });
});