Jquery延迟或设置时间在此

时间:2012-04-27 04:21:23

标签: jquery

点击一个元素我试图引发一些事情,但其中一些我想延迟到后来......我试过这个没有运气:

$('.push').click(function() {
    $('#item1, #item2').addClass('newclass');

    $('.item3, .item4').delay('2000', function () {
        $(this).addClass('hidden'); //Or .hide perhaps?
    });

});

.hiden在css中是“display:none;”我试图延迟隐藏item3和item4几秒钟。

由于

3 个答案:

答案 0 :(得分:3)

.delay()仅影响动画队列中的项目;添加类不会将元素放入动画队列中。见http://api.jquery.com/delay/

使用原生setTimeout方法会更好。

window.setTimeout(  
    function() {
        $('.item3, .item4').addClass('hidden');
    },  
    2000  
);  

答案 1 :(得分:1)

我可以使用以下代码 - http://jsfiddle.net/UzVLk/

来完成
    $('.item3, .item4').delay(2000).hide('fast');

如果我没有传递任何参数来隐藏,它就无法正常工作。

答案 2 :(得分:0)

签名为.delay( duration [, queueName] )

因此,您无法使用回调function(){}作为第二个参数。试试这个:

$('.push').click(function() {
    $('#item1, #item2').addClass('newclass');
    $('.item3, .item4').delay('2000').hide('slow');
});