javascript - 如何在 jQuery/Javascript 中固定/取消固定下拉菜单?

标签 javascript jquery html css

我想创建一个按钮,允许我固定下拉菜单,使其永久可见,然后在第二次单击后取消固定。 jQuery toggle() 不起作用,因为它只是隐藏下拉菜单,与更改 css 显示属性相同。

这是我的 jsfiddle: https://jsfiddle.net/39ykn4vw/

html&css:

<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <button class="pin">
      pin
    </button>
  </div>
</div>

.pin {
  position: absolute;
  left: 5px;
  top: 5px;
}

.dropbtn {
    padding: 16px;
    font-size: 16px;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #cccccc;
    min-width: 160px;
    min-height: 300px;
    z-index: 1;
}

.dropdown:hover .dropdown-content {
    display: block;
}

最佳答案

使用额外的类来检测固定元素:

.pin {
  position: absolute;
  left: 5px;
  top: 5px;
}

.dropbtn {
    padding: 16px;
    font-size: 16px;
}

.dropdown {
    position: relative;
    display: inline-block;
}

.dropdown-content {
    display: none;
    position: absolute;
    background-color: #cccccc;
    min-width: 160px;
    min-height: 300px;
    z-index: 1;
}


.dropdown:hover .dropdown-content,
.dropdown-content.pinned {
    display: block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="dropdown">
  <button class="dropbtn">Dropdown</button>
  <div class="dropdown-content">
    <button class="pin" onClick="$(this).parent().toggleClass('pinned')">
      pin
    </button>
  </div>
</div>

关于javascript - 如何在 jQuery/Javascript 中固定/取消固定下拉菜单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43491286/

相关文章:

javascript - 以编程方式更新输入值时触发更改事件

html - 表单元素 &lt;input type=file > 可以将在线图像作为值吗?

javascript - AngularJS 1 包含来自模板的预制 html 代码

javascript - 将多行 PHP 变量传递给 Javascript 函数

javascript - 获取存储在多个 HTML 元素中的数据

java - 自定义光标行为

javascript - 在 jsrender 中使用脚本

javascript - 如何遍历以数组作为属性的对象

javascript - 将一个对象上的事件路由到另一个对象

javascript - 如何使用 jQuery 在 div 中多次拖放图像以及在 dropped div 中拖放图像?