2010-07-21 37 views
9

Tôi đã có một div # items và nếu nó được nhấp thì div # choices slideDown(). Nếu nó được nhấp một lần nữa thì div # choice nên slideUp(); Làm thế nào tôi có thể kiểm tra nếu lựa chọn là xuống hoặc lên? Tôi biết tôi có thể lưu trữ trong một biến và chuyển đổi giá trị của nó bất cứ khi nào div # mục được nhấp, nhưng nếu #choices đã được trượt xuống bằng các phương tiện khác?jquery toggle slideUp/slideDown

Trả lời

15

Sử dụng .slideToggle()

+0

Sẽ không làm việc kể từ khi ông nói các slide có thể được thực hiện bởi các yếu tố khác. –

+2

+1. @ Kaaviar: trên thực tế, điều này sẽ hoạt động tốt bởi vì 'slideToggle()' sẽ kiểm tra xem phần tử hiện có bị ẩn hay hiển thị hay không. –

+0

cách trượt lên hoặc trượt xuống bằng slideToggle? – Smash

6

Như Marimuthu's answer điểm ra, bạn có thể sử dụng slideToggle() để trượt lên nếu div đã được mở, hoặc xuống nếu nó đóng cửa.

Bạn cũng có thể kiểm tra thuộc tính display để tìm hiểu xem hiện tại có đang hiển thị hay không. Từ tài liệu jQuery cho slideUp().

Khi chiều cao đạt 0, thuộc tính kiểu hiển thị được đặt thành không để đảm bảo rằng phần tử không còn ảnh hưởng đến bố cục của trang nữa.

Biết được điều này, bạn có thể kiểm tra để xem nếu nó được thiết lập để "none":

var $choices = $('div#choices'); 
if ($choices.css("display") == "none") 
    $choices.slideDown(); 
else 
    $choices.slideUp(); 
0

Hãy thử điều này -


HTML:

<a href="#demo" class="nav-toggle">Show</a> 
<div id="demo" style="display:none;"> 
<p>short info</p> 
</div> 


jQuery SCRIPT:

$('.nav-toggle').click(function(){ 
    var content_id = $(this).attr('href');    
    var toggle_switch = $(this); 
    $(content_id).toggle(function(){ 
    if($(this).css('display')=='none'){ 
      toggle_switch.html('Show'); 
    }else{ 
     toggle_switch.html('Hide'); 
     } 
    }); 
}); 
Các vấn đề liên quan