1

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

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

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

4 回答 4

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();
});
于 2013-09-28T12:37:16.783 回答
2

您可以使用

var which = data == 1 ? 'Correct' : 'wrong',
timeVal = which == 1 ? 800 : 600;
setTimeout(function(){
    $("#checked_answer"+ques_id).html(which) ;
}, timeVal);
于 2013-09-28T12:37:37.390 回答
1

If you'd like to do this using animation queues, then you can explicitly add the handler to change the text after the delay like this:

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

Demo

于 2013-09-28T12:44:13.833 回答
1
var val = 'correct';
var delay =800;
$setTimeout(function() {
         $('#checkedAnswer').html(val); }, delay);
于 2013-09-28T12:37:48.003 回答