我有一个setTimeout调用:
if ($cardOne instanceof jQuery){
setTimeout(function() {
resetCard($cardOne);
}, 1000);
$cardOne = "";
}
调用此函数:
function resetCard($card){
$card.removeClass('show');
}
这会导致此错误:
表达式'$ card.removeClass'[undefined]的结果不是函数。
我不确定这意味着什么。 setTimeOut是否想要某些类型的返回值?我已经确认$ card确实是一个jQuery对象(在本例中是一个DIV)。
更新:
我在上面添加了一些示例代码,指出我做错了什么。 Pointy让我意识到问题是当调用removeClass时$ card不是jQuery对象。
如果你查看我的示例代码,事后很明显我做错了什么...我在setTimeout中调用函数然后立即将$ cardOne var设置回空字符串。因此,在setTimeout调用该函数时,var已被重置,不再是jQuery对象。
修复方法是将对象的设置移动到空字符串到resetCard函数中。
答案 0 :(得分:3)
如果您按如下方式更改“resetCard”会发生什么:
function resetCard($card) {
$($card).removeClass('show');
}
错误意味着“$ card”参数引用的对象上没有“removeClass”属性。