Uncaught TypeError: Невозможно прочитать свойство 'removeClass' из неопределенного

У меня есть проблема с моим кодом jquery, я чувствую, что решение довольно простое, но я просто не могу его получить, это простая функция.on click для элемента с классом, но когда я нажимаю на элемент, это дает мне это ошибка "Uncaught TypeError: Не удается прочитать свойство 'removeClass' из undefined" кто-нибудь знает, что я делаю здесь неправильно?

$("body").on( "click", ".fa-caret-right", function(e) {
    e.trigger.removeClass("fa-caret-right");             // <--- right here
    e.trigger.addClass("fa-caret-down");
    e.trigger.parent().next().css("display", "block");
});
$("body").on( "click", ".fa-caret-down", function(e) {
    e.trigger.removeClass("fa-caret-down");             // <--- and probably here
    e.trigger.addClass("fa-caret-right");
    e.trigger.parent().next().css("display", "none");
});

заранее спасибо!

1 ответ

Решение

e это Event объект, который не имеет свойства с именем trigger, поскольку trigger не существует, вы не можете вызывать функции на нем.

Что ты здесь пытаешься сделать?

e.trigger.removeClass("fa-caret-right");

Если вы хотите удалить класс из элемента, который вызвал обработчик (элемент, по которому щелкнули), вы можете ссылаться на этот элемент с помощью this:

$(this).removeClass("fa-caret-right");

Или, если вы хотите использовать Event объект, вы можете искать target свойство:

e.target.removeClass("fa-caret-right");
Другие вопросы по тегам