javascript - jquery展开/折叠?

标签 javascript jquery css toggle

我试图让我的 jquery 在点击任何地方(左上框除外)时展开,并在仅点击(左上框)时尝试折叠

http://jsfiddle.net/wzbAh/1/

HTML:

<div id="box">
    <div class="collapsed container" >
        <div class="nav" class="closed">0</div>
        box 1 - click me    
        <div class="expanded_content">
            extra content only for expanded state
        </div>
        <div class="collapsed_content">
            collapsed only content #1
        </div>
    </div>

    <div class="collapsed container">

        <div class="nav" class="closed">0</div>
        box 2 - click me    
        <div class="expanded_content">
            extra content only for expanded state
        </div>
    </div>
    <div class="collapsed container">

        <div class="nav" class="closed">0</div>
        box 3 - click me    
        <div class="expanded_content">
            extra content only for expanded state
        </div>
    </div>
</div>

JavaScript:

$("#box").delegate(".container", "click", function(e) {
    $(this).addClass("expanded");
});

$("#box").delegate(".container.expanded .nav ", "click", function(e) {

    $(this).addClass("collapsed");
});

好像差不多了,但不完全是,怎样做才是正确的呢?因为切换似乎不是这里的选项。

最佳答案

给你伙计...

$("#box").delegate(".container", "click", function(e) {
    if ($(e.target).hasClass("container")) {
        $(this).addClass("expanded");
    }
});

$("#box").delegate(".container.expanded .nav", "click", function(e) {
    $(this).parent().removeClass("expanded");
    e.stopPropagation();
});

“collapsed”类永远不会被删除,因此要删除展开状态,您需要使用 removeClass("expanded"),这样它就会回到初始状态。此外,当点击 .nav 元素时,您想要影响的 div 是父元素。

最后,e.stopPropagation() 停止点击触发两个事件处理程序并删除类,然后再次添加它。

这是一个有效的 jsfiddle...

http://jsfiddle.net/wzbAh/11/

关于javascript - jquery展开/折叠?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9624326/

相关文章:

javascript - 过滤投资组合时在转型中的流沙跳跃

jquery - Bootstrap 选项卡一起显示

javascript - 如何将 map Infowindow 值传递到 HTML 输入表单

javascript - iPhone视口(viewport)困惑/window.innerHeight

javascript - 错误 : "Too much recursion"

javascript - 下拉菜单中的输入框

html - Grails g :select tag with small picture for each option

javascript - 如何让这个JS倒计时时钟依赖DB值来倒计时?

javascript - 宽度动态 div 容器

javascript - 双字节字 rune 件名显示不正确