1

单击一个元素时,我试图触发一些事情,但其中一些我想推迟到以后。我试过这个没有运气:

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

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

});

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

谢谢

4

3 回答 3

3

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

setTimeout使用本机方法会更好。

window.setTimeout(  
    function() {
        $('.item3, .item4').addClass('hidden');
    },  
    2000  
);  
于 2012-04-27T04:27:01.720 回答
1

我可以通过使用以下代码来做到这一点 - http://jsfiddle.net/UzVLk/

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

如果我没有传递任何参数来隐藏,它就不起作用。

于 2012-04-27T04:32:19.230 回答
0

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

所以你不能使用回调function(){}作为第二个参数。试试这个:

$('.push').click(function() {
    $('#item1, #item2').addClass('newclass');
    $('.item3, .item4').delay('2000').hide('slow');
});
于 2012-04-27T04:41:41.470 回答