javascript - 在多个类悬停时使用 Jquery 显示 div

标签 javascript jquery html css

当我将鼠标悬停在同一个 div 中关联的 div1 时,我想缓慢地显示一个 div2。 我看不出问题出在我的 jquery 中...

$(".div").hover(function() {

  $(this).find(".div2").animate({
    opacity: "1"
  }, {
    queue: false
  });
}, function() {
  $(this).find(".div2").animate({
    opacity: "0"
  }, {
    queue: false
  });
});
.div2 {
  opacity: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
  <div>
    <div class="div1">
    </div>
    <div class="div2">
    </div>
  </div>
  <div>
    <div class="div1">
    </div>
    <div class="div2">
    </div>
  </div>
  <div>
    <div class="div1">
    </div>
    <div class="div2">
    </div>
  </div>
</div>

最佳答案

您的目标是 $('.div')而不是 $('.div1')$('div') .没有类别为 .div 的元素在你的代码中,所以这可能是一个错字。

您还必须更改 .find().next()如果你想在悬停在 '.div1' 上时触发事件元素,因为您想定位下一个 sibling ,而不是 child 。

这是一个您可以引用的工作示例:

https://jsbin.com/vipifolahe/edit?html,js,output

HTML

<div>
    <div>
         <div class="div1">
         </div>
         <div class="div2">
         </div>
    </div>
    <div>
         <div class="div1">
         </div>
         <div class="div2">
         </div>
    </div>
    <div>
         <div class="div1">
         </div>
         <div class="div2">
         </div>
    </div>
</div>

CSS

.div1 {
  height: 50px;
  background-color: red;
}

.div2 {
  height: 50px;
  background-color: green;
}

.div2 {
  opacity: 0;
}

JS

$(".div1").hover(function () {

  $(this).next(".div2").animate({
    opacity: "1"
  }, {
    queue: false
  });
}, function () {
  $(this).next(".div2").animate({
    opacity: "0"
  }, {
    queue: false
  });
});

如果你想在父 div 悬停时触发事件,它可能看起来像这样:

HTML

<div>
    <div class="parent">
         <div class="div1">
         </div>
         <div class="div2">
         </div>
    </div>
    <div class="parent">
         <div class="div1">
         </div>
         <div class="div2">
         </div>
    </div>
    <div class="parent">
         <div class="div1">
         </div>
         <div class="div2">
         </div>
    </div>
</div>

JS

$(".parent").hover(function () {

  $(this).find(".div2").animate({
    opacity: "1"
  }, {
    queue: false
  });
}, function () {
  $(this).find(".div2").animate({
    opacity: "0"
  }, {
    queue: false
  });
});

关于javascript - 在多个类悬停时使用 Jquery 显示 div,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46668507/

相关文章:

javascript - 我的谷歌地图(带有 JS 的静态 html)不会突然出现?

javascript - 如何从axios响应中获取数组值

javascript - 使用 Rails 3.1 中的 JQuery 下拉框发布到 Controller

javascript - 如何在 w3 自动完成 https ://www. w3schools.com/howto/howto_js_autocomplete.asp 给出的代码中提供 json 数据

HTML5 getUserMedia - 禁用麦克风反馈

html - 使用 <ul> 和 <li> 的水平滚动图像问题

javascript - 如何为 Button.click Javascript 调用添加延迟

javascript - 如何从正则表达式中的特定位置删除或替换字母

jquery - HTML : In mobile menu bar is wide

javascript - 如何覆盖延迟对象传递的闭包