开发者问题收集

未捕获的类型错误:无法读取未定义的属性“removeClass”

2014-10-05
16623

我的 jquery 代码有问题,我觉得解决方案很简单,但我就是无法理解,这是一个带有类的元素上的简单 .on click 函数,但是当我单击该元素时,它会给我这个错误“Uncaught TypeError:无法读取未定义的属性‘removeClass’”有人知道我在这里做错了什么吗?

$("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");
David
2014-10-05