我有几个产品在div中彼此相邻排列,我正在使用这个脚本来逐个隐藏。
在某些时候他们都已经消失了,我想让他们全部重新出现。我试过一些.show's但我可能错了。
有人可以看看,看看需要做些什么才能使脚本按预期工作?
<script>
$(document).ready (function() {
"$('.add1').each(function(index) {
setTimeout(function(el) {
el.hide('slow');
}, index * 2000, $(this));
});
});
</script>
答案 0 :(得分:0)
您可以尝试这样的事情:
$(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);
});
也就是说,首先排队所有超时以隐藏元素,然后排队另一个超时以再次显示它们。
当然,这会立刻显示出来。要一次显示一个,你可以这样做:
$(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()
的第三个参数并不适用于所有浏览器。