2008-12-01 138 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定义的函数。