javascript - 单击其中的按钮时如何隐藏下拉菜单

标签 javascript css reactjs

我有一个下拉列表如下:

<div className="dropdown">
    <button className="nav-btn pick-a-sort">PICK A SORT:</button>
    <div className = "dropdown-content">
        <button className="nav-btn" id = "bubble-sort" onClick = {()=>{this.bubbleSort()}}>BUBBLE SORT</button>
        <button className="nav-btn" id = "selection-sort" onClick = {()=>{this.selectionSort()}}>SELECTION SORT</button>
        <button className="nav-btn" id = "insertion-sort" onClick = {()=>{this.insertionSort()}}>INSERTION SORT</button>
        <button className="nav-btn" id = "quick-sort" onClick = {()=>{this.quickSort()}}>QUICK SORT</button>
        <button className="nav-btn" id = "merge-sort" onClick = {()=>{this.mergeSort()}}>MERGE SORT</button>
        <button className="nav-btn" id = "bead-sort" onClick = {()=>{this.beadSort()}}>BEAD SORT</button>
        <button className="nav-btn" id = "heap-sort" onClick = {()=>{this.heapSort()}}>HEAP SORT</button>
        <button className="nav-btn" id = "radix-sort" onClick = {()=>{this.radixSort()}}>RADIX SORT</button>
    </div>
</div>

我已将 CSS 设置为当用户“悬停”在按钮“PICK A SORT:”上时列表可见

但是,在单击任何按钮时,除非用户将光标移出,否则下拉列表将保持可见,因为光标仍悬停在列表上。

单击下拉列表中的按钮后,是否有隐藏列表的方法?

这是我的 CSS:

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

.dropdown-content {
    display: none;
    position: absolute;
    background-color: rgba(255, 255, 255, 0.8);
    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2);
    z-index: 1;
}

.dropdown-content .nav-btn{
    display: block;
    text-align: center;
    width: 100%;
    margin: 0 auto;
}

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

这是直播 website在哪里可以看到问题。非常感谢任何帮助!

最佳答案

您可以在 onclick 函数中的 .dropdown 容器中添加一个 clicked 类,然后添加以下 CSS:

.dropdown.clicked:hover .dropdown-content {
    display: none;
}

然后您必须在某个时候删除 clicked 类才能使悬停效果再次起作用。

关于javascript - 单击其中的按钮时如何隐藏下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59106709/

相关文章:

javascript - 定义变量时,它们在 firebug 中显示为未定义

asp.net - 设计一个 asp.net 按钮

javascript - 跨浏览器平滑滚动?

php - 我怎样才能让 PHP INCLUDE 工作?

reactjs - 命名导出/导入与使用绝对路径的导入

javascript - Dojo FilteringSelect - 防止自动打开下拉菜单

javascript - 根据出生日期计算年龄(jQuery 或 PHP)[不基于用户输入]

javascript - 更改 CircularProgress 的颜色和位置?

javascript - 在 React js 中使用 Reactstrap 从多个选择下拉列表中动态选择选项

reactjs - undefined 不是一个对象(评估 'this.props.navigator.push' )