给出'表达式结果不是函数'的setTimeout错误
我有一个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函数。
如果您更改“resetCard”,会发生以下情况:
function resetCard($card) {
$($card).removeClass('show');
}
该错误意味着“$ card”参数引用的对象上没有“removeClass”属性。
链接地址: http://www.djcxy.com/p/59027.html上一篇: setTimeout giving a 'result of expression is not a function' error
下一篇: based code work in Firefox with a small timeout (works in Internet Explorer/Chrome)?