jquery - 隐藏和取消隐藏相关下拉菜单

标签 jquery css html

我制作了自定义选择菜单

    <span class="depend">
        <div class="col-md-3 col-sm-3 car-finder-form__input-value" data-select-dropdown=".finder-form--one">
            <a href="javascript:void(0);">Select 1</a>
        </div>
        <div class="col-md-3 col-sm-3 finder-form__input-value" data-select-dropdown=".finder-form--two">
            <a href="javascript:void(0);">Select 2</a>
        </div>
        <div class="col-md-3 col-sm-3 finder-form__input-value"  data-select-dropdown=".finder-form--three">
            <a href="javascript:void(0);">Select 3</a>
        </div>
     </span>

这是下拉菜单

<div class="row finder-form__dropdown finder-form--one hide">
        <div class="col-xs-12">
            <div class="row finder-form__dropdown-list">
                <a href="">bla bla</a>
            </div>      
        </div>
    </div>
<div class="row finder-form__dropdown finder-form--two hide">
        <div class="col-xs-12">
            <div class="row finder-form__dropdown-list">
                <a href="">bla bla</a>
            </div>      
        </div>
    </div>
<div class="row finder-form__dropdown finder-form--three hide">
        <div class="col-xs-12">
            <div class="row finder-form__dropdown-list">
                <a href="">bla bla</a>
            </div>      
        </div>
    </div>

我的 jQuery 目前看起来像这样

jQuery("div.finder-form__input-value").on("click", function(){
                        var drpdwn = $(this).data("select-dropdown");
                        $(drpdwn).toggleClass("hide");
                    });

单击时 jQuery 会取消隐藏第一个下拉菜单。并在单击时再次隐藏它。

但是当我单击第二个下拉列表时,如何使其关闭第一个下拉列表?当我点击第三个下拉菜单时关闭第二个下拉菜单吗?当我点击第一个时,关闭第二个和第三个?

最佳答案

使用 :not 隐藏 data-select-dropdown 中没有该类的所有下拉列表,然后切换选定的下拉列表

jQuery("div.finder-form__input-value").on("click", function() {
  var drpdwn = $(this).data("select-dropdown");
  $('.finder-form__dropdown:not(' + drpdwn + ')').addClass('hide');
  $(drpdwn).toggleClass("hide");
});
.hide {
  display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="depend">
        <div class="col-md-3 col-sm-3 finder-form__input-value" data-select-dropdown=".finder-form--one">
            <a href="javascript:void(0);">Select 1</a>
        </div>
        <div class="col-md-3 col-sm-3 finder-form__input-value" data-select-dropdown=".finder-form--two">
            <a href="javascript:void(0);">Select 2</a>
        </div>
        <div class="col-md-3 col-sm-3 finder-form__input-value"  data-select-dropdown=".finder-form--three">
            <a href="javascript:void(0);">Select 3</a>
        </div>
     </span>


<div class="row finder-form__dropdown finder-form--one hide">
  <div class="col-xs-12">
    <div class="row finder-form__dropdown-list">
      <a href="">bla bla one</a>
    </div>
  </div>
</div>
<div class="row finder-form__dropdown finder-form--two hide">
  <div class="col-xs-12">
    <div class="row finder-form__dropdown-list">
      <a href="">bla bla tow</a>
    </div>
  </div>
</div>
<div class="row finder-form__dropdown finder-form--three hide">
  <div class="col-xs-12">
    <div class="row finder-form__dropdown-list">
      <a href="">bla bla three</a>
    </div>
  </div>
</div>

关于jquery - 隐藏和取消隐藏相关下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45584137/

相关文章:

javascript - Django 中的弹出窗体(Jquery)

html - 响应式 Bootstrap 粘性页脚高度

html - 如何在我的 Rails 应用程序中将网页另存为图像?

php - 在表格中显示 XML 内容 + 使用 php 轻松搜索

javascript - 如何使用 Javascript/jQuery 保存在浏览器(DOM)上修改过的 html

javascript - JSP页面冲突错误

css - 想通过父元素覆盖子元素的 css 属性

html - CSS 优先级问题

html - 选择器只是一个 div 的文本?

jquery - 隐藏/显示*非常*慢