2010-06-29 92 views

回答

1

喜歡的東西:

<div class="toggleset"> 
    <a class="toggler" href="#">Hide</a> 
    <div class="container"> 
    Data to show/hide 
    </div> 
</div> 

$('.toggler').click(function(evt) { 
    var $toggler = $(this); 
    var $container = $toggler.siblings('.container'); 

    $container.toggle(); 
    $toggler.text($container.is(':visible') ? "Hide" : "Show"); 
    evt.preventDefault(); 
}); 

你不需要外格,如果你使用next(),而不是兄弟姐妹,但它關係腳本更緊的標記。

0

非常感謝,Rob。效果很好!我已經成功地做起來很次要類可以控制切換文本是在這兩個州是什麼:

<script type="text/javascript"> 
<!-- 
$(document).ready(function() { 

$('.toggler.show').click(function(evt) { 
    var $toggler = $(this); 
    var $container = $toggler.siblings('.container'); 

    $container.toggle(); 
    $toggler.text($container.is(':visible') ? "Show less" : "Show more"); 
    $(this).toggleClass('active'); 
}) 

$('.toggler.read').click(function(evt) { 
    var $toggler = $(this); 
    var $container = $toggler.siblings('.container'); 

    $container.toggle(); 
    $toggler.text($container.is(':visible') ? "Read less" : "... Read more"); 
    $(this).toggleClass('active'); 
}) 
evt.preventDefault(); 
}); 
--> 
</script> 

我將如何利用jQuery的的「幻燈片」切換?我試圖改變

$container.toggle(); 

喜歡的東西

$container.slideToggle('fast'); 

但打破上的切換文本變化。 --cg

+0

文本更改已中斷,因爲在動畫完成之前容器的可見性不是最終的。 要解決這個問題,請在執行slideToggle之前檢查$ container.is('visible')並預期狀態將發生變化。即$ container.is(':visible')== true將意味着「閱讀更多」的文本,因爲我們要隱藏容器。然後你可以使用動畫來隱藏(jQuery實現幻燈片,通過改變css屬性隨着時間的推移,但最後它會被隱藏)。 如果這個答案是正確的,你可以upvote並將其標記爲答案? Thx和祝你好運! – Rob 2010-06-29 19:31:47