为什么delay()不起作用?

时间:2011-10-10 23:33:09

标签: javascript jquery

this example中:

$('#click').click(function() {
  $('#delay').delay(2000).css('background-color', '#c30000');
});

为什么delay()来电不会延迟css()来电?

4 个答案:

答案 0 :(得分:3)

结帐http://api.jquery.com/delay/http://api.jquery.com/queue/

$(document).ready(function() {
    $('#click').click(function() {
        $('#delay').delay(2000).queue(function () {
            $(this).css('background-color', '#c30000');
        });
    });
});

答案 1 :(得分:1)

使用javascript的setTimeout():

setTimeout(function() {
  $('#delay').css('background-color', '#c30000');
}, 2000);

答案 2 :(得分:0)

来自documentation

  

.delay()方法最适合在排队的jQuery效果之间延迟 。因为它是有限的 - 例如,它没有提供取消延迟的方法 - .delay()不能替代JavaScript的本机setTimeout函数,这可能更适合某些用例。

所以,基本上,在你的场景中,超时是一种比延迟更好的方法,因为你不是在效果之间。

答案 3 :(得分:-1)

delay()仅适用于jQuery effects

改为使用基本setTimeout电话。