javascript - 隐藏嵌套的 div 时悬停命令停止工作

标签 javascript jquery html css

我正在尝试在 CSS 中使用悬停命令,当悬停在我的属性按钮上时它可以工作,但我希望它在 JavaScript 中的 click 事件之后隐藏。

下面是我的代码示例,其中包含一个“属性”按钮,然后当您将鼠标悬停在该按钮上时会出现一个下拉菜单。如果我将 $(".dropdown-content").css("display","none"); 添加到按钮单击事件,则悬停命令将停止工作。

我不明白为什么会这样,因为我会隐藏一个嵌套的 div .dropdown-content 所以悬停命令应该仍然适用于外部 div `.dropdown 但它不起作用't。任何帮助将不胜感激!

$("#001").on('click', function() {
  window.whichtab = 1;
});

$("#002").on('click', function() {
  window.whichtab = 2;
});

$("#001,#002").on('click', function() {
  $("#title1,#title2").hide()
  
  if (window.whichtab == 1) { //home
    $("#title1").show();
    $("#title1").css("display", "inline");
    //$(".dropdown-content").css("display","none");
  }
  
  if (window.whichtab == 2) {
    $("#title2").show();
    $("#title2").css("display", "inline");
    //$(".dropdown-content").css("display","none");
  }
});
.dropbtn {
  background-color: #3d70b2;
  color: white;
  padding: 13px;
  font-size: 16px;
  border: none;
}

.dropdown-content button {
  color: black;
  border: none;
  width: 250px;
  height: auto;
  padding: 13px 16px;
  text-align: left;
  text-decoration: none;
  display: inline-block;
  cursor: pointer;
}

.dropdown-content {
  display: none;
  border: solid;
  border-radius: 0px;
  border-color: #3d70b2;
  position: absolute;
  background-color: 17, 83, 238;
  min-width: 250px;
  box-shadow: 0px 12px 16px 0px rgba(0, 0, 0, 0);
  z-index: 1;
}

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

.dropdown:hover .dropbtn {
  background-color: #3d70b2;
}

#title1 {
  display: inline;
}

#title2 {
  /*defult title is hidden for 2*/
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="dropdown">
  <!--title of each tab-->
  <button class="dropbtn">Property</button>
  <h4 id="title1"> &emsp;&emsp;Home page</h4>
  <h4 id="title2"> &emsp;&emsp;Content Page</h4>
  <div class="dropdown-content">
    <!--each button going to each tab-->
    <button id="001" ,class='noHover'>Home Page</button><br>
    <button id="002">Content Page</button><br>
  </div>
</div>

最佳答案

display: none 不保留空间,您不能将鼠标悬停在上面。您可以像下面这样使用 opacity 属性:

$(".dropdown-content").css("opacity", 0); // hide
$(".dropdown-content").css("opacity", 1); // show

关于javascript - 隐藏嵌套的 div 时悬停命令停止工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56223255/

相关文章:

html - 在图像之前将 css 边距应用于内容

javascript - jQuery fadeIn 动画显示数据

javascript - 尝试从 Node 服务器检索 json 对象时获取 "Cannot GET/"

javascript - 无法在 <a> 标签内附加 <span>

javascript - 在 javascript 中进行测验,在 jquery 中隐藏一个并显示另一个问题

javascript - 使侧边栏可在拖动时调整大小

php - 将\r\n 替换为 <br/>

Javascript:在字符串中查找单词

javascript - 与 intro.js 相关的问题重点关注 HTML 表格格式

javascript - Bootstrap 轮播在 AJAX 中不起作用