【问题标题】:Uncaught TypeError: Cannot read property 'removeClass' of undefined未捕获的类型错误:无法读取未定义的属性“removeClass”
【发布时间】:2014-11-30 05:39:43
【问题描述】:

我的 jquery 代码有问题,我觉得解决方案很简单,但我就是不明白,它是一个简单的 .on click 函数,对一个具有类的元素但是当我点击该元素时给我这个错误“Uncaught TypeError: Cannot read property 'removeClass' of 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");
});

提前致谢!

【问题讨论】:

    标签: jquery undefined typeerror removeclass


    【解决方案1】:

    ethe Event object,它没有名为 trigger 的属性。由于trigger 不存在,所以不能对其调用函数。

    在这里做什么?:

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

    如果您想从调用处理程序的元素(被点击的元素)中删除该类,您可以使用 this 引用该元素:

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

    或者,如果您想使用Event 对象,您可能正在寻找the target property

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

    【讨论】:

    • 我想使用事件对象并将触发器和目标混为一谈 =p 谢谢!
    猜你喜欢
    • 2021-12-22
    • 2015-01-06
    • 2017-07-26
    • 2019-02-26
    • 2021-12-25
    • 1970-01-01
    • 2017-02-11
    相关资源
    最近更新 更多