单击另一个面板时如何关闭所有打开的面板
How to close all open panels when another one is clicked
我在这里运行了一个搜索框:
http://codepen.io/h0rhay/pen/Kgqwt
法典:
$('.findNavL1').click(function () {
$(this).children('.slideContainer').toggleClass('show').css('z-index', +1);
});
$('.slideContainer').click(function () {
if ($(this).hasClass('show')) {
$(this).toggleClass('show');
}
});
标记:
<div class="row">
<div class="twelve columns width33">
<div class="navContainer rel">
<h2 class="navHeading">Find a holiday</h2>
<ul class="findHolNav">
<li class="findNavL1" onClick="return true"> <span>When</span>
<div class="slideContainer">
<h2 class="internalContent">This is some content 1</h2>
</div>
</li>
<li class="findNavL1" onClick="return true"> <span>How many Days </span>
<div class="slideContainer">
<h2 class="internalContent">This is some content 2</h2>
</div>
</li>
<li class="findNavL1" onClick="return true"> <span>Where</span>
<div class="slideContainer">
<h2 class="internalContent">This is some content 3</h2>
</div>
</li>
<li class="findNavL1" onClick="return true"> <span>Departing</span>
<div class="slideContainer">
<h2 class="internalContent">This is some content 4</h2>
</div>
</li>
<li class="findNavL1" onClick="return true"> <span>No. of People</span>
<div class="slideContainer">
<h2 class="internalContent">This is some content 5</h2>
</div>
</li>
</ul>
</div>
.CSS:
.rel {
position:relative;
}
.staticP {
position:static !important;
}
.show {
display:block !important;
}
.hide {
display:none;
}
/* -----------------------------------------
Shared Styles
----------------------------------------- */
.width33 {
width:33.3% !important;
}
.navContainer {
background:#ccc;
}
.findHolNav {
list-style-type: none;
padding:0;
}
.findNavL1{
cursor:pointer;
}
.findNavL1 span {
padding:20px;
display:block;
}
.findNavL1:nth-of-type(odd){
background-color:#c6c6c6;
}
.findNavL1:hover{
background-color:#c2c2c2;
}
.findNavL1:hover > .slideContainer, .findNavL1:active > .slideContainer {
}
.slideContainer {
display:none;
background-color:lime;
min-height:100%;
position:absolute;
top:0;
left:100%;
width:208%;
}
目前,UI 几乎是正确的。当您单击链接时,将打开相应的面板。
但是,如果单击另一个链接,其相应的面板将打开,但前一个面板保持打开状态。
我希望它关闭。
这将只保留活动的打开状态。
///
我应该说..UI比我之前说的要复杂一些。
第一次点击:滑动打开容器。
单击同一链接:幻灯片已关闭
在打开的容器内单击:容器保持打开状态。
(我已经把这一切都工作正常了)
如果单击其他链接,则打开容器关闭并打开新容器。
这就是我坚持的一点。
使用以下 JS 而不是您编写的 JS(代码笔):
$('.findNavL1').click(function(){
$('.slideContainer').hide();
$(this).find('.slideContainer').show();
});
按如下方式更改块:
if ($(this).hasClass('show')){
$(".slideContainer").removeClass("show");
$(this).toggleClass('show');
}
});
您可以尝试以下...
$('.findNavL1').click(function(){
$('.slideContainer').each(function( index ){
$(this).removeClass('show');
$(this).addClass('hide');
});
$(this).children('.slideContainer').addClass('show');
});
看到这个js小提琴...例子
是的!最后到达那里:
$('.findNavL1').click(function(){
var searchBoxLink = $(this);
var inactiveLink = $('.findNavL1').not(searchBoxLink);
if ( $(inactiveLink).children('.slideContainer').hasClass('show') ){
$(inactiveLink).children('.slideContainer').removeClass('show');
}
$(searchBoxLink).children('.slideContainer').toggleClass('show');
});
$('.slideContainer').click(function(){
if ( $(this).hasClass('show') ){
$(this).toggleClass('show');
}
});
http://codepen.io/h0rhay/pen/Kgqwt
相关文章:
- jQuery点击()事件在另一个点击()中获胜'我不能在手机上工作
- 一个按钮中的两个onClick功能,并希望一个接一个地发生一个单击功能
- 单击单选按钮禁用另一个单选按钮
- 为什么在模糊事件处理程序中添加setTimeout会修复“;掩蔽”;另一个单击处理程序的
- jQuery复选框和span共享一个单击事件
- 通过它查询谷歌地图上已经存在的标记's的lat和long,并以编程方式在其上触发一个单击事件
- 当我转到另一个单选按钮时;s的价值观来了
- 在开发元素被确认后,在开发元素下方保留一个单击按钮
- 选择另一个单选按钮字段时重置单选按钮字段的最佳方法
- JQuery函数绑定到身体节点的点击事件,另一个点击事件立即执行
- 一个.单击函数在 jQuery 中不起作用
- 在jQuery中的另一个点击事件下实现点击事件
- 如何将单选按钮的选定值复制到另一个单选按钮 - jquery
- 启用一个单选组的单选按钮,并在选中时禁用另一个单选组
- $('html').单击一个又一个单击事件
- 我如何引用并返回一个响应,基于一个单选按钮的答案,该单选按钮包含在另一个单选键中
- 单击另一个单选按钮后保持选中状态
- 如何根据单选按钮自动检查另一个单选按钮
- 如何将单击事件绑定到另一个单击元素中的元素
- 单击另一个单击事件中的定位标记