给出'表达式结果不是函数'的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)?