Jquery 显示和隐藏而不是切换

标签 jquery

正如你所见,我是一名设计师而不是程序员,所以不要对我太严厉。 我有一个效果很好的切换开关,但我无法启动简单的显示和隐藏脚本。 我是一个比较宽松的人... 问题是,具有切换功能的 H4 可以独立工作。但我还需要通过按两个按钮来显示所有内容和隐藏所有内容。

切换效果

$(function() {
    $('.toggle-item').each(function(ix, el) {

        $(this).addClass('inactive');
        var contentDiv = $('.toggle-content', $(el));
        $(this).attr('data-height', contentDiv.outerHeight());
        contentDiv.css('overflow', 'hidden');
        contentDiv.height(0);
    });

    $(".toggle-item h4").click(function(){
        var $parent = $(this).parent('.toggle-item');
        if($parent.length) {
            if( $parent.hasClass('inactive') ) {
                $parent.removeClass('inactive');
                $('.toggle-content', $parent).height(           $parent.attr('data-height'));
            } else {
                $parent.addClass('inactive');
                $('.toggle-content', $parent).height( 0 );
            }
        }
    });
});

HTML 代码:

<div class="toggle-item">
    <h4>SOME TEXT AS HEADLINE</h4>
    <div class="toggle-content">
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras accumsan, turpis facilisis ultricies consequat, tellus ligula sagittis libero, porttitor venenatis urna dui non quam. Fusce aliquam, libero sed eleifend pellentesque, ligula dolor porta neque, et egestas diam mauris id odio.</p>
    </div>
</div>

按钮

<button id="show">Show All</button> 
<button id="hide">Hide All</button> 

意图

$(document).ready(function(){
  $("#show").click( function() {
       $('.toggle-content').show();
  });
  $("#hide").click(function(){
       $('.toggle-content').hide();
  });
});

Here您可以发现示例正在运行。

欢迎任何提示! TIA。

最佳答案

我认为您需要这个,只需尝试将您的脚本更新为如下所示:

  $("#show").click( function() {
       $('.toggle-content').each(function(){
         // you need this because height goes to 0pt
         $(this).height('auto');
         $(this).show();
       });
  });
  $("#hide").click(function(){
       $('.toggle-content').each(function(){
         $(this).hide();
       });
  });

我希望这会有所帮助

关于Jquery 显示和隐藏而不是切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11892318/

相关文章:

jQuery 验证 - 在运行时更改最小最大数量检查

jquery - 在phonegap应用程序上使用jquery mobile淡出弹出窗口

javascript - 表单无法提交并给出错误消息

javascript - TinyMCE -> 无法读取 null 的属性 'setAttribute'

jquery - css 缩放会递减但不会正确递增

javascript - Jquery 的问题相当于 javascript createElement

jquery - 如何覆盖 jQuery touchSwipe 处理程序?

javascript - 如何在 session 之间保持类切换?

javascript - jQuery/Javascript 替换 'Syntax error, unrecognized expression'

javascript - Jquery 验证器插件不使用复杂名称进行验证