以下代码应该对匹配集中的每个元素执行单击函数,将点击延迟200毫秒,然后才对每个元素生效。
$('.panel').each(function(){
window.setTimeout($('a.last').click(),pdel);
pdel += 200;
});
这一切都发生在同一时间,超时功能不起作用。
答案 0 :(得分:3)
我假设pdel
被宣布在每个之外。但是您希望setTimeout
使用某个函数,否则您将.click()
方法的结果传递给setTimeout
。
试试这个:
var pdel = 0;
$('.panel').each(function(){
setTimeout(function(){
$('a.last').click();
}, pdel);
pdel += 200;
});
答案 1 :(得分:1)
删除窗口并将时间函数重置为jQuery函数:
var pdel = 0;
$('.panel').each(function(){
setTimeout(function(){ $('a.last').click(); },pdel);
pdel += 200;
});
QED
答案 2 :(得分:0)
$(“。panel”)在此代码中必须做什么?它是关于具有“面板”类的元素数量吗?
只计算$(“。panels”)的数量:
var c = $(".panels").length;
var pdel = 200;
for(var i = 0; i < c; i++) {
window.setTimeout(function() { /* your function */ }, pdel*c)
}
你真的每200ms都想要点击所有a.last
- 元素吗?不只是相应.panel
中的那个?所以内在的功能是:
function() { $(".panels").eq(c).find("a.last").click() }