Каков эффект добавления, 'возвращают false' слушателю события щелчка?

Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.

Например, ниже - класс ученика, который будет использовать его в нашем коде.

public class Student {

    private int id;

    public int getId() {
        return this.id;
    }

    public setId(int newId) {
        this.id = newId;
    }
}

Приведенный ниже код дает вам исключение с нулевым указателем.

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}

Поскольку вы используете Obj_Student, но вы забыли инициализировать его, как в правильном коде, показанном ниже:

public class School {

    Student obj_Student;

    public School() {
        try {
            obj_Student = new Student();
            obj_Student.setId(12);
            obj_Student.getId();
        }
        catch(Exception e) {
            System.out.println("Null Pointer ");
        }
    }
}
347
задан Vemonus 28 November 2016 в 12:55
поделиться

10 ответов

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

я не полагаю, что существует спецификация W3C для этого. Всем древним интерфейсам JavaScript как это дали псевдоним "DOM 0" и являются главным образом неуказанными. У Вас может быть некоторая удача при чтении старой документации Netscape 2.

современный способ достигнуть этого эффекта состоит в том, чтобы звонить event.preventDefault(), и это определяется в DOM 2 спецификации .

Событий
304
ответ дан Jim 23 November 2019 в 00:28
поделиться

Вы видите различие со следующим примером:

<a href="http://www.google.co.uk/" onclick="return (confirm('Follow this link?'))">Google</a>

Нажатие "Okay" возвращает true, и по ссылке переходят. Нажатие на "Cancel" возвращает false и не переходит по ссылке. Если JavaScript отключен, по ссылке обычно переходят.

160
ответ дан HoboBen 23 November 2019 в 00:28
поделиться

Вот более устойчивая стандартная программа для отмены поведения по умолчанию и распространения событий во всех браузерах:

// Prevents event bubble up or any usage after this is called.
eventCancel = function (e)
{
    if (!e)
        if (window.event) e = window.event;
    else return;
    if (e.cancelBubble != null) e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    if (e.preventDefault) e.preventDefault();
    if (window.event) e.returnValue = false;
    if (e.cancel != null) e.cancel = true;
}

пример того, как это использовалось бы в обработчике событий:

// Handles the click event for each tab
Tabstrip.tabstripLinkElement_click = function (evt, context) 
{
    // Find the tabStrip element (we know it's the parent element of this link)
    var tabstripElement = this.parentNode;
    Tabstrip.showTabByLink(tabstripElement, this);
    return eventCancel(evt);
}
27
ответ дан Donald Duck 23 November 2019 в 00:28
поделиться

Перенастройка лжи от события JavaScript обычно отменяет поведение "по умолчанию" - в случае ссылок, это говорит браузеру не переходить по ссылке.

15
ответ дан Neall 23 November 2019 в 00:28
поделиться

Я полагаю, что это заставляет стандартное событие не происходить.

В Вашем примере браузер не попытается перейти к #.

12
ответ дан Guvante 23 November 2019 в 00:28
поделиться

Возвратите false, остановит гиперссылку, сопровождаемую после того, как JavaScript работал. Это полезно для незаметного JavaScript, который ухудшается корректно - например, у Вас могло быть изображение миниатюр, которое использует JavaScript для открытия всплывающего окна полноразмерного изображения. Когда JavaScript выключен, или по изображению щелкают средней кнопкой (открытый на новой вкладке), это игнорирует onClick событие и просто открывает изображение как полноразмерное изображение обычно.

, Если бы возвращают false, не были определены, изображение и запустило бы всплывающее окно и обычно открывало бы изображение. Некоторые люди вместо того, чтобы использовать ложь возврата используют JavaScript в качестве атрибута href, но это означает, что, когда JavaScript отключен, ссылка ничего не сделает.

12
ответ дан HoboBen 23 November 2019 в 00:28
поделиться

использование возвращает false в onclick событии, мешает браузеру обработать остальную часть стека выполнения, который включает переходить по ссылке в атрибут href.

, Другими словами, добавляя ложь возврата мешает href работать. В Вашем примере это точно, что Вы хотите.

кнопки In, это не необходимо, потому что onclick - все, что это будет когда-либо выполнять - нет никакого href, чтобы обработать и перейти в.

7
ответ дан pixel 23 November 2019 в 00:28
поделиться

Ложь возврата говорит для не принятия мер по умолчанию, которые в случае <a href> должны перейти по ссылке. Когда Вы возвратите false к onclick, тогда href будет проигнорирован.

5
ответ дан Zano 23 November 2019 в 00:28
поделиться

Возвратите false, предотвратит навигацию. Иначе местоположение стало бы возвращаемым значением someFunc

3
ответ дан ncgz 23 November 2019 в 00:28
поделиться
4
ответ дан Chris Ballance 23 November 2019 в 00:28
поделиться
Другие вопросы по тегам:

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