2008-12-01 78 views

回答

47

您必須指定樣式:顯示:沒有這些層,使它們不JavaScript的渲染之前顯示。然後你可以調用slideToggle()而沒有問題。例如:

<style type="text/css"> 
    .text{display:none} 
</style> 

<script type="text/javascript"> 
    $(document).ready(function() {  
     $('span.more').click(function() { 
      $('p:eq(0)').slideToggle(); 
      $(this).hide(); 
     }); 
    }); 
</script> 

<body>    
     <p class="text"> 
      I am using jquery <br/> 
      I am using jquery <br/> 
      I am using jquery <br/> 
      I am using jquery <br/> 
      I am using jquery <br/> 
      I am using jquery <br/>   
     </p> 
     <span class="more">show</span> 
+0

這對於禁用Javascript但啓用了CSS的用戶會造成問題。他們將無法看到您的內容! – strager 2008-12-01 23:39:52

12

你也許可以做這樣的事情:

$(document).ready(function(){ 
    $('div').hide(); 
}); 
+1

這個版本的好處是,如果jquery消失了,你默認都會顯示。 – gaijintendo 2015-01-24 21:23:27

10

您可以使用style =「display:none;」開始您的元素和slideToggle()將從那裏採取。

3

如前所述,在幕後應用CSS樣式會導致禁用腳本的用戶複雜化。解決這個問題的方法是按照Anne的說法隱藏元素,或者將腳本中的CSS定義爲要更改的函數,而不是將頁面樣式化(將結構,樣式和函數分開),然後使用toggleClass腳本函數或自定義效果隱藏由jQuery定義的函數。