在jQuery中默认折叠slideToggle()元素

Cra*_*ker 36 jquery

我有一组div,我想使用jQuery的slideToggle()方法使其可折叠/可扩展.默认情况下如何使所有这些div折叠?我想避免在页面渲染期间/之后显式调用每个元素上的slideToggle().

net*_*tos 54

您必须为这些图层指定一个样式:display:none,以便在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>
Run Code Online (Sandbox Code Playgroud)

  • 我知道,但问题暗示Craig不想使用javascript来执行show/hide动作,所以唯一的替代方案是样式表.无论如何,当然如果他以某种方式使用javascript,他的代码将完全无法访问屏幕阅读器等...我使用这种类型的紧急情况 (2认同)

Ann*_*off 12

你可能会做这样的事情:

$(document).ready(function(){
  $('div').hide();
});
Run Code Online (Sandbox Code Playgroud)


Dav*_*ard 12

您可以使用style ="display:none;"启动元素.而slideToggle()将从那里获取它.