我在jQuery中有一个像这样的数组
var matches = [];
jQuery(".block").each(function() {
matches.push(this);
});
现在我想使用像这样的匹配数组
var len = jQuery(matches).length;
for (var i = 0; i < len; i++){
function slider() {
jQuery(matches[i]).show("slow");
jQuery(matches[i]).animate({left:'+=730'},3000);
jQuery(matches[i]).show("normal", slider);
}
}
当我将数字放在I的位置时,它可以工作,但for循环不起作用。请帮我搞错误。
答案 0 :(得分:3)
jQuery(".block").each(function() {
jQuery(this).show("slow");
jQuery(this).animate({left:'+=730'},3000);
jQuery(this).show("normal", slider);
});
你甚至可以把它们连在一起:
jQuery(".block").each(function() {
jQuery(this).show("slow", function(){jQuery(this).animate({left:'+=730'},3000, function(){jQuery(this).show("normal", slider);});});
});
最后要注意的是,如果这是您使用多个不同时间的效果,您可以将效果包装在函数中并在迭代中调用它:
jQuery(".block").each(function() {
slider(this);
});
function silder(el)
{
jQuery(el).show("slow", function(){jQuery(el).animate({left:'+=730'},3000, function(){jQuery(el).show("normal", slider);});});
}
答案 1 :(得分:1)
试试这个......
for (var i= 0; i< matches.length; i++){
jQuery(matches[i]).show("slow");
jQuery(matches[i]).animate({left:'+=730'},3000);
jQuery(matches[i]).show("normal", slider);
}
您更有可能只想用这个代替整个示例代码......
jQuery(".block").each(function() {
jQuery(this).show("slow");
jQuery(this).animate({left:'+=730'},3000);
jQuery(this).show("normal", slider);
});
因此您无需声明或使用数组。显然,如果你有这样做的原因那么公平,但这似乎没必要。
虽然两个节目功能之间会有冲突。