我正在尝试使用setTimeout()
方法使用jQuery更改一些CSS属性,但我的方法不起作用。当函数应该被执行时,我一直得到“脚本错误”。代码编辑器不适合jQuery,所以我可能会得到它。我特别将原因缩小到setTimeout
关键字,其中的代码块不会导致错误。我环顾四周,似乎没有其他人有我当前的问题。那有什么不对?
else{//cards do NOT match
$(this).css("backgroundColor", "#ff6666");
$(cardId).css("backgroundColor", "#ff6666");
setTimeout(function(){
$(cardId).children().hide();
$(cardId).css("backgroundColor", "white");
$(this).children().hide();
$(this).css("backgroundColor", "white");
}, 1500);
}
答案 0 :(得分:0)
您的关键字不正确。您可以使用lambda来不更改上下文。或者您可以在变量中设置“this”。
else {//cards do NOT match
$(this).css("backgroundColor", "#ff6666");
$(cardId).css("backgroundColor", "#ff6666");
setTimeout(() => {
$(cardId).children().hide();
$(cardId).css("backgroundColor", "white");
$(this).children().hide();
$(this).css("backgroundColor", "white");
}, 1500);
}
或
var self = this;
else {//cards do NOT match
$(this).css("backgroundColor", "#ff6666");
$(cardId).css("backgroundColor", "#ff6666");
setTimeout(function(){
$(cardId).children().hide();
$(cardId).css("backgroundColor", "white");
$(self).children().hide();
$(self).css("backgroundColor", "white");
}, 1500);
}