Reveal toggle hide other div jquery

十年热恋 提交于 2020-01-17 12:39:51

问题


I have 2 links that both reveal different divs. I've got it slide toggling all fine. But what i need it to do is collapse the opposite toggle (if it's open). Similar to how an accordion panel works (when you trigger a reveal toggle link the open panel closes and the newly triggered panel opens).

Here's the jQuery I'm currently using

//Left reveal toggle
$(".left-reveal-toggle").on("click", function () {
    $('.left-reveal-section').slideToggle("slow");
    $(".left-reveal-toggle").toggleClass("active");
});

//Right reveal toggle
$(".right-reveal-toggle").on("click", function () {
    $('.right-reveal-section').slideToggle("slow");
    $(".right-reveal-toggle").toggleClass("active");
});

Here's a working JSFiddle link: http://jsfiddle.net/wq73aeuh/1/

//Left reveal toggle
$(".left-reveal-toggle").on("click", function() {
  $('.left-reveal-section').slideToggle("slow");
  $(".left-reveal-toggle").toggleClass("active");
});

//Right reveal toggle
$(".right-reveal-toggle").on("click", function() {
  $('.right-reveal-section').slideToggle("slow");
  $(".right-reveal-toggle").toggleClass("active");
});
.left-panel {
  min-height: 400px;
  background: #31b9ce;
  width: 50%;
  float: left;
  text-align: center;
}

.right-panel {
  min-height: 400px;
  background: #4f5cd6;
  width: 50%;
  float: left;
  text-align: center;
}

.left-panel-reveal {
  min-height: 400px;
  background: #31b9ce;
  width: 50%;
  float: left;
  text-align: center;
}

.right-panel-reveal {
  min-height: 400px;
  background: #4f5cd6;
  width: 50%;
  float: left;
  text-align: center;
}

.hide {
  display: none;
}

.clear {
  clear: both;
  font-size: 0px;
  line-height: 0px;
  display: block;
}

html,
body,
div,
span,
applet,
object,
iframe,
h1,
h2,
h3,
h4,
h5,
h6,
p,
blockquote,
pre,
a,
abbr,
acronym,
address,
big,
cite,
code,
del,
dfn,
em,
font,
img,
ins,
kbd,
q,
s,
samp,
small,
strike,
strong,
sub,
sup,
tt,
var,
b,
u,
i,
center,
dl,
dt,
dd,
ol,
ul,
li,
fieldset,
form,
label,
legend,
table,
caption,
tbody,
tfoot,
thead,
tr,
th,
td {
  margin: 0;
  padding: 0;
  border: 0;
  outline: 0;
  font-size: 100%;
  vertical-align: baseline;
  background: transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div class="left-panel">
  <a href="#" class="left-reveal-toggle">Read more form left panel</a>
</div>

<div class="right-panel">
  <a href="#" class="right-reveal-toggle">Read more from right panel</a>
</div>


<div class="clear"></div>


<div class="left-reveal-section hide">
  <div class="left-panel-reveal">left panel reveal content</div>
  <div class="right-panel-reveal">left panel reveal content</div>
</div>


<div class="right-reveal-section hide">
  <div class="left-panel-reveal">right panel reveal content</div>
  <div class="right-panel-reveal">right panel reveal content</div>
</div>

回答1:


Use at the top of function in right: $('.left-reveal-section').slideUp('slow'); And top of function in left: $('.right-reveal-section').slideUp('slow');



来源:https://stackoverflow.com/questions/43140791/reveal-toggle-hide-other-div-jquery

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!