如何在jquery中使用延迟

时间:2013-09-28 12:32:27

标签: jquery html

我想在一段时间内输出html()输出。我试过这个,但它不起作用。

if (data==1) {
     $("#checked_answer"+ques_id).delay(800).html("Correct") ;

}
else {
     $("#checked_answer"+ques_id).delay(600).html("Wrong") ;
}

4 个答案:

答案 0 :(得分:2)

请使用超时,因为delay()仅适用于FX队列:

var delay = data === 1 ? 800       : 600,
    txt   = data === 1 ? 'Correct' : 'Wrong';

setTimeout(function() {
    $("#checked_answer"+ques_id).html(txt); 
}, delay);

如果您只需使用delay(),则必须将html()内容添加到队列中:

$('#checked_answer').delay(800).queue(function() {
    $(this).html('Correct').dequeue();
});

答案 1 :(得分:2)

您可以使用

var which = data == 1 ? 'Correct' : 'wrong',
timeVal = which == 1 ? 800 : 600;
setTimeout(function(){
    $("#checked_answer"+ques_id).html(which) ;
}, timeVal);

答案 2 :(得分:1)

var val = 'correct';
var delay =800;
$setTimeout(function() {
         $('#checkedAnswer').html(val); }, delay);

答案 3 :(得分:1)

如果您想使用动画队列执行此操作,那么您可以显式添加处理程序以在延迟之后更改文本,如下所示:

$("#checked-answer").delay(800).queue(function(next) {
    $(this).html("Correct");
    next();
});

Demo