2017-05-06 101 views
1

当另一个手风琴打开时,我必须关闭手风琴。我必须一次只显示一个手风琴。 目前,手风琴允许您一次打开多个面板。如果我打开一个选项卡,然后打开另一个选项卡,则两个选项卡将同时打开。我只能显示一个。你能帮我吗?当我们打开一个手风琴时,另一个手风琴应该关闭

$(function() { 
 
    $(".expand").on("click", function() { 
 

 
    $(this).next().slideToggle(200); 
 
    $expand = $(this).find(">:first-child"); 
 
    
 
    if($expand.text() == "+") { 
 
     $expand.text("-"); 
 
    } else { 
 
     $expand.text("+"); 
 
    } 
 
    }); 
 
});
#integration-list { 
 
    font-family: 'Open Sans', sans-serif; 
 
    width: 100%; 
 
    margin: 0 auto; 
 
    display: table; 
 
} 
 
#integration-list ul { 
 
    padding: 0; 
 
    margin: 20px 0; 
 
    color: #555; 
 
} 
 
#integration-list ul > li { 
 
    list-style: none; 
 
/* border-top: 1px solid #ddd;*/ 
 
    display: block; 
 
    padding: 15px; 
 
    overflow: hidden; 
 
} 
 

 
#integration-list ul > li > a:hover 
 
{ 
 
    text-decoration: none; 
 
} 
 
.expand { 
 
    display: block; 
 
    text-decoration: none; 
 
    color: #555; 
 
    cursor: pointer; 
 
} 
 
.expand h2{ 
 
    font-size: 28px; 
 
} 
 
#sup{ 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
    width: 80%; 
 
} 
 
.detail { 
 
    margin: 0 34px; 
 
    display: none; 
 
    line-height: 22px; 
 
    /*height: 150px;*/ 
 
} 
 

 
.detail h2{ 
 
    font-size: 18px; 
 
    color: #000; 
 
} 
 
.right-arrow { 
 
/* margin-top: 12px;*/ 
 
    margin:0 20px; 
 
    width: 10px; 
 
    height: 100%; 
 
    float: left; 
 
    font-weight: bold; 
 
    font-size: 20px; 
 
} 
 
.icon { 
 
    height: 75px; 
 
    width: 75px; 
 
    float: left; 
 
    margin: 0 15px 0 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 

 
<div class="container"> 
 
    <div class="row"> 
 

 
<div id="integration-list"> 
 
    <ul> 
 
     <li> 
 
      <a class="expand"> 
 
       <div class="right-arrow">+</div> 
 
       <h2>Lorem ipsum dolor sit amet</h2> 
 
       </a> 
 

 
      <div class="detail"> 
 
       
 
        <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
 
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis risus non tellus viverra suscipit. Integer eu vehicula orci, vel semper tortor. Cras ultrices semper vestibulum. Aliquam luctus euismod urna, vitae tincidunt lectus porta id. Nulla porttitor feugiat nisi posuere porta. Curabitur vitae nibh vitae nunc lobortis eleifend. Nullam feugiat urna vitae augue molestie finibus. Nulla facilisi. 
 
        </p> 
 
       
 
     </div> 
 
     </li> 
 
     
 
     <li> 
 
      <a class="expand"> 
 
       <div class="right-arrow">+</div> 
 
       <h2>Lorem ipsum dolor sit amet</h2> 
 
       </a> 
 

 
      <div class="detail"> 
 
       
 
        <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
 
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis risus non tellus viverra suscipit. Integer eu vehicula orci, vel semper tortor. Cras ultrices semper vestibulum. Aliquam luctus euismod urna, vitae tincidunt lectus porta id. Nulla porttitor feugiat nisi posuere porta. Curabitur vitae nibh vitae nunc lobortis eleifend. Nullam feugiat urna vitae augue molestie finibus. Nulla facilisi. 
 
        </p> 
 
       
 
     </div> 
 
     </li> 
 
     <li> 
 
      <a class="expand"> 
 
       <div class="right-arrow">+</div> 
 
       <h2>Lorem ipsum dolor sit amet</h2> 
 
      </a> 
 

 
      <div class="detail"> 
 
       
 
        <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
 
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis risus non tellus viverra suscipit. Integer eu vehicula orci, vel semper tortor. Cras ultrices semper vestibulum. Aliquam luctus euismod urna, vitae tincidunt lectus porta id. Nulla porttitor feugiat nisi posuere porta. Curabitur vitae nibh vitae nunc lobortis eleifend. Nullam feugiat urna vitae augue molestie finibus. Nulla facilisi. 
 
        </p> 
 
       
 
     </div>   
 
    </li> 
 

 

 
    </ul> 
 
</div> 
 
    </div> 
 
</div>

+0

检查我的答案 –

回答

1

使用简单的.not()就可以实现这一点。当一个手风琴打开其他需要slideUp()也是其他需要的标志是'+'

下面是工作代码:

$(function() { 
 
    $(".expand").on("click", function() { 
 
    var x = $(this).next(); 
 
    $('.detail').not(x).slideUp(); 
 
    
 
    $(this).next().slideToggle(200); 
 
    $expand = $(this).find(">:first-child"); 
 
    
 
    if($expand.text() == "+") { 
 
     $expand.text("-"); 
 
     $('.right-arrow').not($expand).text("+"); 
 
    } else { 
 
     $expand.text("+"); 
 
    } 
 
    }); 
 
});
#integration-list { 
 
    font-family: 'Open Sans', sans-serif; 
 
    width: 100%; 
 
    margin: 0 auto; 
 
    display: table; 
 
} 
 
#integration-list ul { 
 
    padding: 0; 
 
    margin: 20px 0; 
 
    color: #555; 
 
} 
 
#integration-list ul > li { 
 
    list-style: none; 
 
/* border-top: 1px solid #ddd;*/ 
 
    display: block; 
 
    padding: 15px; 
 
    overflow: hidden; 
 
} 
 

 
#integration-list ul > li > a:hover 
 
{ 
 
    text-decoration: none; 
 
} 
 
.expand { 
 
    display: block; 
 
    text-decoration: none; 
 
    color: #555; 
 
    cursor: pointer; 
 
} 
 
.expand h2{ 
 
    font-size: 28px; 
 
} 
 
#sup{ 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
    width: 80%; 
 
} 
 
.detail { 
 
    margin: 0 34px; 
 
    display: none; 
 
    line-height: 22px; 
 
    /*height: 150px;*/ 
 
} 
 

 
.detail h2{ 
 
    font-size: 18px; 
 
    color: #000; 
 
} 
 
.right-arrow { 
 
/* margin-top: 12px;*/ 
 
    margin:0 20px; 
 
    width: 10px; 
 
    height: 100%; 
 
    float: left; 
 
    font-weight: bold; 
 
    font-size: 20px; 
 
} 
 
.icon { 
 
    height: 75px; 
 
    width: 75px; 
 
    float: left; 
 
    margin: 0 15px 0 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 

 
<div class="container"> 
 
    <div class="row"> 
 

 
<div id="integration-list"> 
 
    <ul> 
 
     <li> 
 
      <a class="expand"> 
 
       <div class="right-arrow">+</div> 
 
       <h2>Lorem ipsum dolor sit amet</h2> 
 
       </a> 
 

 
      <div class="detail"> 
 
       
 
        <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
 
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis risus non tellus viverra suscipit. Integer eu vehicula orci, vel semper tortor. Cras ultrices semper vestibulum. Aliquam luctus euismod urna, vitae tincidunt lectus porta id. Nulla porttitor feugiat nisi posuere porta. Curabitur vitae nibh vitae nunc lobortis eleifend. Nullam feugiat urna vitae augue molestie finibus. Nulla facilisi. 
 
        </p> 
 
       
 
     </div> 
 
     </li> 
 
     
 
     <li> 
 
      <a class="expand"> 
 
       <div class="right-arrow">+</div> 
 
       <h2>Lorem ipsum dolor sit amet</h2> 
 
       </a> 
 

 
      <div class="detail"> 
 
       
 
        <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
 
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis risus non tellus viverra suscipit. Integer eu vehicula orci, vel semper tortor. Cras ultrices semper vestibulum. Aliquam luctus euismod urna, vitae tincidunt lectus porta id. Nulla porttitor feugiat nisi posuere porta. Curabitur vitae nibh vitae nunc lobortis eleifend. Nullam feugiat urna vitae augue molestie finibus. Nulla facilisi. 
 
        </p> 
 
       
 
     </div> 
 
     </li> 
 
     <li> 
 
      <a class="expand"> 
 
       <div class="right-arrow">+</div> 
 
       <h2>Lorem ipsum dolor sit amet</h2> 
 
      </a> 
 

 
      <div class="detail"> 
 
       
 
        <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
 
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis risus non tellus viverra suscipit. Integer eu vehicula orci, vel semper tortor. Cras ultrices semper vestibulum. Aliquam luctus euismod urna, vitae tincidunt lectus porta id. Nulla porttitor feugiat nisi posuere porta. Curabitur vitae nibh vitae nunc lobortis eleifend. Nullam feugiat urna vitae augue molestie finibus. Nulla facilisi. 
 
        </p> 
 
       
 
     </div>   
 
    </li> 
 

 

 
    </ul> 
 
</div> 
 
    </div> 
 
</div>

+0

感谢您答复Mr.Sahil为我完美工作。 Upvote从我身边 –

2

只是隐藏所有.details第一和设定的所有.right-arrow为 “+” 的文字。

编辑:

正如评论所说,我切换到效果基本show更好的视觉

$(function() { 
 
    $(".expand").on("click", function() { 
 
    if ($(this).find(".right-arrow").text() === "-") { 
 
     return; 
 
    } 
 

 
    $(".detail").slideUp(); 
 
    $(".right-arrow").text("+"); 
 
    
 
    $(this).next().slideToggle(200); 
 
    $expand = $(this).find(">:first-child"); 
 
    
 
    if($expand.text() == "+") { 
 
     $expand.text("-"); 
 
    } else { 
 
     $expand.text("+"); 
 
    } 
 
    }); 
 
});
#integration-list { 
 
    font-family: 'Open Sans', sans-serif; 
 
    width: 100%; 
 
    margin: 0 auto; 
 
    display: table; 
 
} 
 
#integration-list ul { 
 
    padding: 0; 
 
    margin: 20px 0; 
 
    color: #555; 
 
} 
 
#integration-list ul > li { 
 
    list-style: none; 
 
/* border-top: 1px solid #ddd;*/ 
 
    display: block; 
 
    padding: 15px; 
 
    overflow: hidden; 
 
} 
 

 
#integration-list ul > li > a:hover 
 
{ 
 
    text-decoration: none; 
 
} 
 
.expand { 
 
    display: block; 
 
    text-decoration: none; 
 
    color: #555; 
 
    cursor: pointer; 
 
} 
 
.expand h2{ 
 
    font-size: 28px; 
 
} 
 
#sup{ 
 
    display: table-cell; 
 
    vertical-align: middle; 
 
    width: 80%; 
 
} 
 
.detail { 
 
    margin: 0 34px; 
 
    display: none; 
 
    line-height: 22px; 
 
    /*height: 150px;*/ 
 
} 
 

 
.detail h2{ 
 
    font-size: 18px; 
 
    color: #000; 
 
} 
 
.right-arrow { 
 
/* margin-top: 12px;*/ 
 
    margin:0 20px; 
 
    width: 10px; 
 
    height: 100%; 
 
    float: left; 
 
    font-weight: bold; 
 
    font-size: 20px; 
 
} 
 
.icon { 
 
    height: 75px; 
 
    width: 75px; 
 
    float: left; 
 
    margin: 0 15px 0 0; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> 
 
<link href="//maxcdn.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" rel="stylesheet"/> 
 
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet"/> 
 

 

 
<div class="container"> 
 
    <div class="row"> 
 

 
<div id="integration-list"> 
 
    <ul> 
 
     <li> 
 
      <a class="expand"> 
 
       <div class="right-arrow">+</div> 
 
       <h2>Lorem ipsum dolor sit amet</h2> 
 
       </a> 
 

 
      <div class="detail"> 
 
       
 
        <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
 
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis risus non tellus viverra suscipit. Integer eu vehicula orci, vel semper tortor. Cras ultrices semper vestibulum. Aliquam luctus euismod urna, vitae tincidunt lectus porta id. Nulla porttitor feugiat nisi posuere porta. Curabitur vitae nibh vitae nunc lobortis eleifend. Nullam feugiat urna vitae augue molestie finibus. Nulla facilisi. 
 
        </p> 
 
       
 
     </div> 
 
     </li> 
 
     
 
     <li> 
 
      <a class="expand"> 
 
       <div class="right-arrow">+</div> 
 
       <h2>Lorem ipsum dolor sit amet</h2> 
 
       </a> 
 

 
      <div class="detail"> 
 
       
 
        <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
 
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis risus non tellus viverra suscipit. Integer eu vehicula orci, vel semper tortor. Cras ultrices semper vestibulum. Aliquam luctus euismod urna, vitae tincidunt lectus porta id. Nulla porttitor feugiat nisi posuere porta. Curabitur vitae nibh vitae nunc lobortis eleifend. Nullam feugiat urna vitae augue molestie finibus. Nulla facilisi. 
 
        </p> 
 
       
 
     </div> 
 
     </li> 
 
     <li> 
 
      <a class="expand"> 
 
       <div class="right-arrow">+</div> 
 
       <h2>Lorem ipsum dolor sit amet</h2> 
 
      </a> 
 

 
      <div class="detail"> 
 
       
 
        <h2>Lorem ipsum dolor sit amet, consectetur adipiscing elit.</h2> 
 
        <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus sagittis risus non tellus viverra suscipit. Integer eu vehicula orci, vel semper tortor. Cras ultrices semper vestibulum. Aliquam luctus euismod urna, vitae tincidunt lectus porta id. Nulla porttitor feugiat nisi posuere porta. Curabitur vitae nibh vitae nunc lobortis eleifend. Nullam feugiat urna vitae augue molestie finibus. Nulla facilisi. 
 
        </p> 
 
       
 
     </div>   
 
    </li> 
 

 

 
    </ul> 
 
</div> 
 
    </div> 
 
</div>

+0

'slideUp()'会比'hide()'更合适:) – Akshay

+0

无论他感觉如何使用。我想解释的是,在扩展任何内容之前,他需要隐藏所有内容。但我会实施你的建议 –

+0

是的,它只是他使用'slideToggle()'所以它会更好'slideUp' – Akshay

0

$("#accordion > li > span").click(function() { 
 
    $(this).closest('li').siblings().find('span').removeClass('active').next('div').slideUp(250); 
 
    $(this).toggleClass("active").next('div').slideToggle(250); 
 
});
#accordion { 
 
\t list-style: none; 
 
\t padding: 2px; 
 
} 
 
#accordion > li { 
 
\t display: block; 
 
\t list-style: none; 
 
} 
 
#accordion > li > span { 
 
\t display: block; 
 
\t color: #fff; 
 
\t margin: 4px 0; 
 
\t padding: 6px; 
 
\t background: url(images/expand_arrow.png) no-repeat 99.5% 6px #525252; 
 
\t background-size: 20px; 
 
\t font-weight: normal; 
 
\t cursor: pointer; font-size:16px 
 
} 
 
#accordion > li > div { 
 
\t list-style: none; 
 
\t padding: 6px; 
 
\t display: none; overflow:auto 
 
} 
 
#accordion > ul li { 
 
\t font-weight: normal; 
 
\t cursor: auto; 
 
\t padding: 0 0 0 7px; 
 
} 
 
#accordion a { 
 
\t text-decoration: none; 
 
} 
 
#accordion li > span:hover { 
 
} 
 
#accordion li > span.active { 
 
\t background: url(images/collapse-arrow.png) no-repeat 99.5% 6px #000; 
 
\t background-size: 20px 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<ul id="accordion"> 
 
    <li><span>Tab 1</span> 
 
    <div> 
 
tab1 
 
    
 
    </div> 
 
    </li> 
 
    <li><span>Tab 2</span> 
 
    <div> 
 
    Tab 3 
 
    </div> 
 
    
 
    </li> 
 
    
 
    <li><span>tab 3</span> 
 
    <div> 
 
    tab 3 
 
    </div> 
 
    </li> 
 
    
 
    <li><span>tab 4</span> 
 
    <div> 
 
Tab 4 
 
     </div> 
 

 
    
 
    </li> 
 
    
 
</ul>

的IS另一种方法来实现它,但@Anurag Daolagajao已经更正为您的代码

1

请参阅下面的代码。 +(折叠)和 - (展开)正常工作。

$(function() { 
    $(".expand").on("click", function() { 
    $(".detail").hide(); 
    $expand = $(this).find(">:first-child"); 

    if($expand.text() == "+") { 
     $(this).next().slideToggle(200); 
     $(".expand").find(">:first-child").text("+"); 
     $expand.text("-"); 
    } else { 
     $expand.text("+"); 
    } 
    }); 
}); 
+0

Mr.Ganesh Snippet显示错误。 –

+0

@Narendra。请立即检查 –

+0

感谢您回复Mr.Ganesh先生,您的代码正在为我工​​作,但不是我想要的那么多。Upvote从我身边 –

相关问题