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

标签 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>

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

最佳答案

在我的情况下,该按钮似乎工作正常。甚至您共享的 jsFiddle 链接也能正常工作。单击 CLOSE MAP 按钮时,一个“closed”类被添加到侧边栏 div,甚至 max-height 属性也被添加到它。

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

关于javascript - jQuery toggleClass 无法正常工作(关闭 div),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36963479/

相关文章:

php - 如何在 PHP 中通过 POST 从 xmlhttp.send(str) 获取字符串

javascript - 删除隐藏的表格行并将 .html 输出到 Excel

Javascript/Ajax 在 Mozilla firefox 中有效,但在 Google Chrome 和 IE 中无效

javascript - Facebook 评论插件仅显示在重新加载页面 reactjs

jquery - 响应式布局——试图隐藏元素

Javascript:为什么 ".deletebutton"的点击事件没有触发

jquery - Bootstrap 背景覆盖将图像设置在 "container-fluid"内,以便高度填充页面

javascript - 使用语义类名与使用微数据

javascript - 即使使用 AngularJS 和 PHP 的凭据不正确,登录仍然会定向

html - 修复动画扩展 div 中的内容布局