javascript - Jquery Slidetoggle 显示隐藏 一次一个 div

标签 javascript jquery toggle show-hide slidetoggle

我在创建一次打开一个 div 的 Jquery 切换时遇到问题。

我希望当我点击div(show)时只显示一个内容。在这里,它们同时打开。

$(document).ready(function(){
    var $content = $(".content").hide();
        $(".toggle").on("click", function(e){
            $(this).toggleClass("expanded");
            $content.slideToggle();
        });
});    

JS Fiddle

另外:如何添加选项,以便在打开新的 div 后隐藏打开的 div,而且即使您不打开新的 div,也可以选择隐藏当前打开的 div 通过点击“隐藏” 文本)

最佳答案

您可以通过多种方式做到这一点。对于当前的 html 标记,您可以使用 jQuery's Next Function

$(".toggle").on("click", function(e){
    $(this).toggleClass("expanded");
    $(this).next().slideToggle();
});

或者您可以将切换和内容包装在 div 中并使用 parentfind 函数。

HTML

<div class="wrapper">
    <div class="toggle"></div>
    <div class="content">Lorem Ipsum </div>
</div>

JavaScript

$(".toggle").on("click", function(e){
    $(this).toggleClass("expanded");
    $(this).parent().find('.content').slideToggle();
});

如果您希望所有其他 .content 在切换其中一个时 slideUp,只需选择所有 .content div 并使用 jQuery's Not Function排除您刚刚切换的 div。

$(".toggle").on("click", function(e){
    var target = $(this).parent().find('.content');
    $(this).toggleClass("expanded");
    target.slideToggle();
    $('.content').not( target ).slideUp();
});

关于javascript - Jquery Slidetoggle 显示隐藏 一次一个 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30921898/

相关文章:

Javascript 复制日期 + 一年

javascript - 关于 Node.js 的问题。架构和模型

javascript - jquery setdate设置日期比实际选择的日期小一

javascript - 在javascript中解析具有未知字段名称的json数组

java - 带有 Spring MVC 的 jQuery datepicker - 将日期从 View 传递到 Controller 发送 null

Javascript:使用 1 个 Click-Listener 在 2 个功能之间切换

javascript - 从 json 创建一个 Chart.js 点数据集

javascript - 绑定(bind)到动态创建的 iframe 中的事件

c++ - 在 C++ 中没有循环从上到下,反之亦然?

jquery - 单击时添加 div,然后在每次单击时切换它