如果在没有警报的情况下使用,Jquery setTimeout将不起作用
Jquery setTimeout not working if used without alert
我正在实现这段代码。
$('.mcqtd').click(function(){
var choice = this.id;
checkanswer(choice,questions[x].correctAnswer);
window.setTimeout(showquestion(x+1,0),3000); // 1 seconds
});
}
function checkanswer(answer,original){
if (answer=='choice'+original){
$('#choice'+original).css('backgroundColor', '#DD792E');
$('#choice'+original).append("<span class='padding10 mcqsymbol'><img src='images/right_icon.png' /></span>");
} else {
$('#'+answer).css('backgroundColor', '#AFA689');
$('#'+answer).append("<span class='padding10 mcqsymbol'><img src='images/wrong_icon.png' /></span>");
$('#choice'+original).css('backgroundColor', '#DD792E');
$('#choice'+original).append("<span class='padding10 mcqsymbol'><img src='images/right_icon.png' /></span>");
}
}
Onclick
,tds
应高亮显示,3秒钟后,应加载下一个问题,但这没有发生,3秒钟之后,加载下一问题,但背景不变。如果我在checkanswer()
中提醒某个东西,代码就会工作。有什么想法吗?我该怎么办?
如果要使用parametes,执行部分必须封装在匿名函数中。否则,它在setTimeout
中不起作用。
setTimeout(function() {
showquestion(x + 1, 0);
}, 3000);
正如A.Wolff在下面的评论中所指出的,您甚至可以通过在时间后面扩展参数来将参数传递给setTimeout
中的被调用函数。
// note there are no '()' behind the function name
setTimeout(showquestion, 3000, x + 1, 0);
如果您要调用一个没有参数的函数,那么也可以省略包装器函数和其他参数。
// note there are no '()' behind the function name
setTimeout(functionWithoutParameter, 3000);
您所做的是直接调用函数并将其返回值传递给setTimeout
。当你打算使用参数时,你必须使用匿名函数,例如:
setTimeout(function(){ showquestion(x+1, 0);}, 3000);
编辑:
如果你只有一个没有参数的函数调用,它会看起来像:
setTimeout("foo()", 3000);
或
setTimeout(foo, 3000);
在setTimeout方法中肮脏地调用它不起作用。
setTimeout(question, 3000);
function question() {
showquestion(x + 1, 0)
}
相关文章:
- jQuery setTimeOut: in for-loop
- 将jQuery对象传递到setTimeout递归函数中
- 添加一个setTimeout方法会使jQuery悬停方法忽略setTimeout方法中的函数
- Javascript/Jquery setTimeout 函数不适用于长 html
- jQuery setTimeout ajax递归函数在即时消息程序中短时间后抛出错误
- 我们可以组合多个jQuery setTimeout吗?
- Jquery setTimeout 不起作用(图像幻灯片)
- jQuery setTimeout:行上的第一个操作不起作用
- Jquery setTimeOut Delay
- jquery settimeout 和 .focus() 一起在 Firefox 浏览器中不起作用
- Jquery setTimeout in a setTimeinterval 不起作用
- jQuery setTimeout $this.remove() 多个元素的重叠
- jQuery settimeout()工作不正常
- Jquery setTimeout.需要的弹出淡出一些超时后
- jQuery - setTimeout does not work
- jquery setTimeout在这个函数中不起作用
- JavaScript JQuery setTimeout
- 如果在没有警报的情况下使用,Jquery setTimeout将不起作用
- jquery setTimeout递归太多
- Javascript/jquery setTimeout变得更快