我有一个 setTimeout 调用:
if ($cardOne instanceof jQuery){
setTimeout(function() {
resetCard($cardOne);
}, 1000);
$cardOne = "";
}
调用此函数:
function resetCard($card){
$card.removeClass('show');
}
这会导致此错误:
表达式“$card.removeClass”的结果[未定义]不是函数。
我不确定这意味着什么。 setTimeOut 是否想要某种返回值?我已经验证 $card 确实是一个 jQuery 对象(在本例中是一个 DIV)。
更新:
我在上面添加了一些示例代码来指出我做错了什么。 Pointy 让我意识到问题在于,当调用removeClass 时,$card 不是一个 jQuery 对象。
如果你看看我的示例代码,事后看来我做错了什么很明显......我在 setTimeout 中调用该函数,然后立即将 $cardOne var 设置回空字符串。因此,当 setTimeout 调用该函数时,var 已被重置并且不再是 jQuery 对象。
修复方法是将对象的设置移至 ResetCard 函数中的空字符串。
最佳答案
如果您按如下方式更改“resetCard”会发生什么:
function resetCard($card) {
$($card).removeClass('show');
}
该错误意味着“$card”参数引用的对象上没有“removeClass”属性。
关于javascript - setTimeout 给出 'result of expression is not a function' 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5211889/