jQuery toggleClass无法正常工作(关闭div)

时间:2016-05-01 05:45:19

标签: javascript jquery html css

我希望有一个按钮可以在点击时切换div(侧边栏)类。通过将max-height设置为130px,该类应关闭侧边栏。

这是我到目前为止所尝试的但是由于某种原因它不适合我:



jQuery(document).ready(function() {
  $('.close_sidebar').click(function() {
    $('.sidebar').slideToggle("slow");
    $('.sidebar').toggleClass('closed');
    if ($('.sidebar').hasClass('closed')) {
      $('.close_sidebar_text').text('OPEN MAP');
    } else {
      $('.close_sidebar_text').text('CLOSE MAP');
    }
  });
});

#map-canvas {
  clear: both;
  width: 100%;
  height: 600px;
  border-radius: 3px;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  margin: 0 auto;
}
.closed {
  max-height: 130px;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<div class="close_sidebar" style="border-style:solid; width:70px; height:25px; margin:-5px 0px 0px 647px; cursor:pointer; padding:5px;">
  <div class="close_sidebar_text" style="color:#000; border-style:none; margin:-7px 0px 0px 0px; font-size:12px; font-family: Agency FB;">
    OPEN MAP
  </div>
</div>

<div class="sidebar" style="border-style:none; margin:0px auto 0px; ">
  <div class="searchform" style="color:#000; position:absolute; z-index:1; margin:120px 0px 0px 0px; border-style:none; width:180px; height:200px;">
    <form action="" method="post" id="search">
      <br>
      <select class="selmenu" id="city" name="city" style="border-style:solid; margin:0px 0px 0px 20px;">
        <option value="Novi Sad">Novi Sad</option>
        <option value="Belgrade">Belgrade</option>
        <option value="Singapore">Singapore</option>
      </select>
      <br>
      <input class="txtinput" id="minPrice" name="minPrice" placeholder="Min Price" style=" margin:10px 0px 5px 20px;" type="text">
      <br>
      <input class="txtinput" id="maxPrice" name="maxPrice" placeholder="Max Price" style=" margin:10px 0px 5px 20px;" type="text">
      <br>
      <label for="slika" style="margin:0px 0px 0px 21px; font-size:14px; font-family: Agency FB;">Onlysearch ads with picture</label>
      <input id="slika" name="slika" style=" margin:0px 0px 0px 5px;" type="checkbox">
      <br>
      <input class="submitbtn" style="margin:5px 0px 10px 20px;" type="submit" value="Search">
    </form>
  </div>
  <div id="searchbar">
    <section class="webdesigntuts-workshop">
      <form action="searchpage.php" method="post">
        <input placeholder="Search..." type="search">
        <button>Search</button>
      </form>
    </section>
  </div>
  <div id="map-canvas"></div>
</div>
&#13;
&#13;
&#13;

jsFiddle:https://jsfiddle.net/azizn/u5ms2ftu/

2 个答案:

答案 0 :(得分:0)

按钮似乎在我的情况下正常工作。即使您分享的jsFiddle链接也能正常工作。点击关闭地图按钮,一个班级&#34;关闭&#34;正在添加到侧边栏div,甚至添加了max-height属性。

我可以看到的视觉效果是,在单击“关闭地图”按钮后,侧边栏完全消失,单击“打开地图”时,它完全显示。这是你想要的吗?或者你想要它的某些部分是可见的和不可见的。 因为如果你想让它的某些部分变得可见和不可见,那么你就不应该使用slideToggle作为完整的类,因为无论最大高度还是最小高度,它都会使整个类消失或出现。

答案 1 :(得分:0)

您需要添加以下内容才能发挥作用:

.closed {
  overflow: hidden;
  ...
}