jquery - 如何让 jQuery 在停止悬停 div 后不显示工具提示?

标签 jquery html css

我试图让工具提示在我没有将鼠标悬停在 div 上时消失。但是,当我将鼠标悬停在下一个 div 上时,上一个 div 中的工具提示会再次显示。有什么方法可以在我离开悬停时立即停止显示工具提示吗?我尝试创建一个功能,当我将鼠标悬停在工具顶部上时,它会消失,但它不起作用。我发布了下面的代码来演示我的问题。非常感谢您的帮助。

$(".photos").hover(
  function(){
    $(".tooltip",this).fadeIn();
  },
  function(){
    $(".tooltip",this).fadeOut();
  }
);
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

.container{
  width:80%;
  margin:auto;
  text-align:center;
}

.photos{
  width:200px;
  height:200px;
  background-color:red;
  float:left;
  margin:20px 0 0 40px;
  position:relative;
}

.tooltip{
  content:"";
  position:absolute;
  width:200px;
  height:100%;
  background-color:gray;
  color:black;
  z-index:1;
  left:103%;
  display:none;
}

.tooltip:after{
  content:"";
  position:absolute;
  color:black;
  border-width:5px;
  border-style:solid;
  top:45%;
  right:100%;
  border-color:transparent rgba(0,0,0,.6) transparent transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="container">
  <div class="photos"><span class="tooltip">Hello There</span></div>
  <div class="photos"><span class="tooltip">Hello There</span></div>
  <div class="photos"><span class="tooltip">Hello There</span></div>
  <div class="photos"><span class="tooltip">Hello There</span></div>
  <div class="photos"><span class="tooltip">Hello There</span></div>
</div>

最佳答案

添加此样式:

.tooltip {
  pointer-events: none;
}

这将阻止鼠标与工具提示交互,否则会重新触发其父 div 上的悬停事件。

片段:

$(".photos").hover(
  function() {
    $('.tooltip', this).fadeIn();
  },
  function() {
    $('.tooltip', this).fadeOut();
  }
);
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

.container {
  width: 80%;
  margin: auto;
  text-align: center;
}

.photos {
  width: 200px;
  height: 200px;
  background-color: red;
  float: left;
  margin: 20px 0 0 40px;
  position: relative;
}

.tooltip {
  content: "";
  position: absolute;
  width: 200px;
  height: 100%;
  background-color: gray;
  color: black;
  z-index: 1;
  pointer-events: none;
  left: 103%;
  display: none;
}

.tooltip:after {
  content: "";
  position: absolute;
  color: black;
  border-width: 5px;
  border-style: solid;
  top: 45%;
  right: 100%;
  border-color: transparent rgba(0, 0, 0, .6) transparent transparent;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container">
  <div class="photos"><span class="tooltip">Hello There</span></div>
  <div class="photos"><span class="tooltip">Hello There</span></div>
  <div class="photos"><span class="tooltip">Hello There</span></div>
  <div class="photos"><span class="tooltip">Hello There</span></div>
  <div class="photos"><span class="tooltip">Hello There</span></div>

</div>

关于jquery - 如何让 jQuery 在停止悬停 div 后不显示工具提示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48104792/

相关文章:

javascript - 仅显示两个选择框

php - MySQL查询进度信息

javascript - 如何在 AngularJS 中将 ng-style 元素更改为 ng-click 元素?

javascript - 将 Pdf 文件上传到数据库

javascript - 如何向本地托管的 Node.js 服务器发出 jQuery 请求?

javascript - 鼠标移动时的空闲事件 - 如何在鼠标移动时永久停止脚本

javascript - 如何将图像移动到 html/javascript 中的鼠标位置?

javascript - HTML 使用 JavaScript 添加具有 JQuery 属性的元素

html - 如何在 HTML 中显示两列?

html - 我的元素导航在 mozilla 中无法正常工作 我该如何解决这个问题?