我正在使用以下代码来延迟触发器循环通过li项目列表

var eleID = '';
$('.SlideSelect').each(function(i) {

    eleID = $(this).attr('id');

    $('#'+eleID).delay(800*i).trigger('click');
});


但是,延迟不起作用,只会循环。

有人知道为什么吗?

var eleID = '';
$('.SlideSelect').each(function() {

    eleID = $(this).attr('id');

    setTimeout(function(){
        $('#'+eleID).trigger('click');
    }, 5000)
});

最佳答案

延迟用于动画队列。如果要延迟其他任何事情,则应使用setTimeout。请注意,使用单独的函数可以捕获延迟函数中的每个值。

var eleID = '';
$('.SlideSelect').each(function(i) {

    eleID = $(this).attr('id');
    delayedTrigger( $('#'+eleID), 800*i );
});

function delayedTrigger(elem, delay)
{
    setTimeout( function() { $(elem).trigger('click'); }, delay );
}

关于jquery - jQuery延迟每个循环并触发,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6572444/

10-10 18:40