1

下面的代码应该对匹配集中的每个元素执行一个点击函数,在它对每个元素生效之前将点击延迟 200 毫秒。

$('.panel').each(function(){
        window.setTimeout($('a.last').click(),pdel);
        pdel += 200;
    });

这一切同时发生,超时功能不起作用。

4

3 回答 3

3

我假设pdel是在每个之外声明的。但是你会希望你使用一个函数,否则你会将方法setTimeout的结果传递给..click()setTimeout

尝试这个:

var pdel = 0;
$('.panel').each(function(){
    setTimeout(function(){
        $('a.last').click();
    }, pdel);
    pdel += 200;
});
于 2012-12-31T17:43:39.287 回答
1

删除窗口并将时间函数重置为 jQuery 函数:

var pdel = 0;
    $('.panel').each(function(){
        setTimeout(function(){ $('a.last').click(); },pdel);
        pdel += 200;
    });

量子点

于 2012-12-31T17:43:13.593 回答
0

$(".panel") 在这段代码中有什么作用?是关于“面板”类的元素数量吗?

只需计算 $(".panels") 的数量:

var c = $(".panels").length;
var pdel = 200;
for(var i = 0; i < c; i++) {
    window.setTimeout(function() { /* your function */ }, pdel*c)
}

你真的每 200 毫秒都想要a.last点击所有元素吗?不只是对应的那个.panel?所以内部函数是:

function() { $(".panels").eq(c).find("a.last").click() }
于 2012-12-31T17:47:07.143 回答