tôi có một số lượng ngẫu nhiên của DIV (tối thiểu 1, tối đa là 10)jquery show/hide divs và một bộ đếm
<div id="container">
<div class="foo">Content</div> <!-- div 1 -->
<div class="foo">Content</div> <!-- div 2 -->
<div class="foo">Content</div> <!-- div 3 -->
<div class="foo">Content</div> <!-- div 4 -->
<div class="foo">Content</div> <!-- div 5 -->
<div class="foo">Content</div> <!-- i need this one hidden -->
<div class="foo">Content</div> <!-- and this one -->
</div>
Tôi muốn 5 divs đầu tiên được nhìn thấy (hoặc với .show() hoặc với một lớp học, không quan trọng). Bất kỳ DIV bổ sung nào cũng sẽ bị ẩn.
tôi sau đó mô phỏng các "đóng cửa" của một div với:
$('.foo').click(function(){
$(this).fadeOut('slow');
});
mà loại bỏ các div nhấn vào, khiến cho tất cả các divs dưới đây để di chuyển lên một. Đây là hiệu ứng mong muốn của tôi.
Tuy nhiên, tôi cần một số logic ở đây.
Nếu tôi có ít hơn 5 DIVS, cơ sở đóng sẽ bị vô hiệu hóa. Nếu tôi có nhiều hơn 5 DIV, thì khi div được "đóng", tôi muốn div "ẩn" tiếp theo hiển thị.
tôi có thể thêm ID cho mỗi DIV nếu được yêu cầu với ID như "foo1" "foo2" vv
Giải pháp của Nick Craver là một giải pháp hay. Tôi chỉ muốn lưu ý rằng bằng cách sử dụng 'slideDown' và' slideUp', nơi bạn đang sử dụng 'fadeOut/In' tạo ra một hiệu ứng tốt đẹp với ít bị giật. – lonesomeday
lời khuyên được lưu ý, đẹp hơn nhiều! – Ross