代码之家  ›  专栏  ›  技术社区  ›  chandan

jquery使用$(this)并一起悬停

  •  4
  • chandan  · 技术社区  · 6 年前

    链接到 fiddle

    我试图使用$(this)关键字&jquery的hover()函数。

    类“item”有3个div,每个div包含两个子div,“trigger”&trigger box,我试图实现的是当用户悬停在每个“trigger”div上时,“visible”类需要添加到相应的“trigger box”中。

    HTML代码:

    <div class="container">
      <div class="item">
        <div class="tirgger">
          <h5>Trigger 1</h5>
        </div>
        <div class="trigger-box">
          <h3>trigger box 1</h3>
        </div>
      </div>
       <div class="item">
        <div class="tirgger">
          <h5>Trigger 2</h5>
        </div>
        <div class="trigger-box">
          <h3>trigger box 2</h3>
        </div>
      </div>
       <div class="item">
        <div class="tirgger">
          <h5>Trigger 3</h5>
        </div>
        <div class="trigger-box">
          <h3>trigger box 3</h3>
        </div>
      </div>
    

    javascript代码:

    $('.item').hover(function() {
    
        console.log("hover in");
        $('.item .trigger-box', this).addClass('visible');
    
      }, function() {
    
        console.log("hover out");
        $('.item .trigger-box', this).removeClass('visible');;
    });
    

    我尝试过多个组合关键字“$(this)”,但无法使其工作,任何帮助将不胜感激。

    3 回复  |  直到 6 年前
        1
  •  4
  •   charlietfl    6 年前

    摆脱 .item 部分

    $('.item .trigger-box', this);
    

    这个语法和

    $(this).find('.item .trigger-box')
    

    但是自从 this 这个 .项目 它找不到那个选择器它在寻找自己 里面 它本身

    Working version

        2
  •  1
  •   Temani Afif    6 年前

    你可以试试这个:

    $('.tirgger').hover(function() {
    
        $(this).parent().find('.trigger-box').addClass('visible');
    
      }, function() {
    
        $(this).parent().find('.trigger-box').removeClass('visible');;
    });
    .visible {
      color:red;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="container">
      <div class="item">
        <div class="tirgger">
          <h5>Trigger 1</h5>
        </div>
        <div class="trigger-box">
          <h3>trigger box 1</h3>
        </div>
      </div>
       <div class="item">
        <div class="tirgger">
          <h5>Trigger 2</h5>
        </div>
        <div class="trigger-box">
          <h3>trigger box 2</h3>
        </div>
      </div>
       <div class="item">
        <div class="tirgger">
          <h5>Trigger 3</h5>
        </div>
        <div class="trigger-box">
          <h3>trigger box 3</h3>
        </div>
      </div>
        3
  •  0
  •   spiker    6 年前

    对于更简单的解决方案,请使用

    $(document).ready(function(){
        $('.item').hover(function(){
        $(this).find('.trigger-box').css("opacity","1")
    },function(){
        $(this).find('.trigger-box').css("opacity","0");
    });
    });