我有几个产品在一个div中并排排列,我使用这个脚本逐个隐藏。
在某种程度上,他们都消失了,我希望他们都重新出现。我试过一些。节目,但我可能是错误的位置。
可以有人请看看,看看需要做些什么,以获得脚本工作的预期?
<script>
$(document).ready (function() {
"$('.add1').each(function(index) {
setTimeout(function(el) {
el.hide('slow');
}, index * 2000, $(this));
});
});
</script>
你可以尝试这样做:
$(document).ready (function() {
var $add1 = $('.add1').each(function(index, el) {
setTimeout(function() {
$(el).hide('slow');
}, index * 2000);
});
setTimeout(function() {
$add1.show('slow');
}, $add1.length * 2000);
});
也就是说,首先将所有超时排队以隐藏元素,然后将另一个超时排队以再次显示它们。
演示:http://jsfiddle.net/tsuQd/
当然,这同时显示了它们。要一次显示一个,你可以这样做:
$(document).ready (function() {
var $add1 = $('.add1'),
count = $add1.length;
$add1.each(function(index, el) {
setTimeout(function() {
$(el).hide('slow');
}, index * 2000);
setTimeout(function() {
$(el).show('slow');
}, (count + index) * 2000);
});
});
演示:http://jsfiddle.net/tsuQd/1/
请注意,我已经调整了您在超时回调中获取元素引用的方式,因为使用setTimeout()
的第三个参数在所有浏览器中都不起作用。