Javascript removeClass超时不工作
我解决了这个问题 我在清空阵列的下一行添加了超时函数。 我是一个新的javascript,这是我的代码 该数组是具有跨距的数组Javascript removeClass超时不工作,javascript,Javascript,我解决了这个问题 我在清空阵列的下一行添加了超时函数。 我是一个新的javascript,这是我的代码 该数组是具有跨距的数组 pickedArray[0].removeClass('show'); pickedArray[1].removeClass('show'); 这是可行的,但速度太快了 但是当我喜欢这个的时候 setTimeout(function(){ pickedArray[0].remo
pickedArray[0].removeClass('show');
pickedArray[1].removeClass('show');
这是可行的,但速度太快了
但是当我喜欢这个的时候
setTimeout(function(){
pickedArray[0].removeClass('show');
pickedArray[1].removeClass('show');
}, 100);
我收到一个错误“无法读取未定义的属性'removeClass'”
我怎样才能纠正这个问题
谢谢
这是我的代码,我知道它很混乱,但我只想让它工作
var activeCards = 0;
var firstPick = 0;
var secondPick = 0;
var pickedArray = [];
$('.card').click(function() {
console.log('I was clicked.' + ' ' + activeCards);
activeCards++;
var span = $(this).find('span');
pickedArray.push(span);
console.log(span.text())
span.addClass('show')
if (activeCards == 1) {
firstPick = span.text();
} else {
secondPick = span.text();
activeCards = 0;
if (firstPick == secondPick) {
console.log(firstPick + " " + secondPick)
setTimeout(function() {
alert("You got a match");
}, 100);
pickedArray[0].parent().addClass('matched');
pickedArray[1].parent().addClass('matched');
} else {
setTimeout(function() {
pickedArray[0].removeClass('show');
pickedArray[1].removeClass('show');;
}, 100);
}
pickedArray = []
}
});
调用
setTimeout
后,您会立即说:
pickedArray = []
它会用一个空数组覆盖它
100毫秒后,pickedArray[0]
因此未定义
可以将数组作为参数传递给函数:
setTimeout(function(myArray) {
myArray[0].removeClass('show');
myArray[1].removeClass('show');;
}.bind(null, pickedArray), 100);
您在哪里声明了数组?不在任何括号中。就在我的脚本标签里。你能发布代码吗?你需要提供一个真实的。这个问题很可能是由于在调用
setTimeout
和解决超时之间修改了数组引起的,但是您提供的代码片段并没有说明这一点。谢谢,我意识到这就是问题所在,并解决了它。谢谢你的帮助。