Как удалить прослушиватель событий и заменить его новым? - PullRequest
1 голос
/ 27 апреля 2020

Я делаю тест с множественным выбором. Когда я удаляю прослушиватель событий, я не могу заменить его новым прослушивателем событий.

См. Мой код ниже ...

choiceC.removeEventListener('click', firstQuestion());

choiceC.addEventListener('click', function (event) {
    question.appendChild(feedback);
});

choiceB.removeEventListener('click', firstQuestion());

// Correct Answer
choiceB.addEventListener('click', function (event) {
    thirdQuestion();
});

выбор C был предыдущим правильный выбор, который перемещает пользователя к следующему вопросу. Я хочу заменить прослушиватель событий отзывами о том, что выбор пользователя неверен. choiceB - новый правильный ответ. Я хочу удалить прослушиватель событий, который ранее уведомлял о неправильности выбора пользователя, и заменить его функцией, которая переходит к следующему вопросу.

См. Мой репозиторий GitHub для полного набора HTML, CSS и JavaScript файлов: https://github.com/billyhao12/Code-Quiz

Заранее спасибо всем, кто помогает.

1 Ответ

0 голосов
/ 27 апреля 2020

Вы должны сохранить ссылку на функцию, следовательно:

choiceC.addEventListener('click', firstQuestion);

choiceC.removeEventListener('click', firstQuestion);

// your new function replacing the firstQuestion func
choiceC.addEventListener('click', function (event) {
    question.appendChild(feedback);
});
...