为什么jquery悬停在一个元素上,突出显示所有元素

时间:2019-01-27 11:35:23

标签: javascript jquery html html5 css3

当我将鼠标悬停在一个元素上时,所有元素都将突出显示 这是我的html和jquery代码

    $('.hover-text').hide();
       $('.movie-content').hover(
         function () {
            $('.movies_post_text').hide();
            $('.hover-text').show();
         }, 
         function () {
            $('.movies_post_text').show();
            $('.hover-text').hide();
         }
      );
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="movie-content movie-big" style="background-image: url('Images/incidentbyabank-900x498.jpg');">
<a href="http://www.cricbuzz.com">

  <div class="movies_post_text">
    <h3>INCIDENT BY A BANK</h3>
    <p>Sweden/12 MIN</p>
    <p>Award Winning, Drama, Thriller</p>
    <p>DIR.Ruben Ostlund</p>
  </div>

  <div class="hover-text">
    <div class="row movie-info">
      <div class="col-md-4">
        <div class="reactions pull-left">
          <div class="view">429<i class="fa fa-eye"></i></div>
          <div class="like">252<i class="fa fa-thumbs-up"></i></div>
        </div>
      </div>
      <div class="col-md-8">
        <h3 class="grid-title">INCIDENT BY A BANK</h3>
        <div class="movie-desc">
          <p>Shot using a single camera, 90 people meticulously recreate a failed bank robbery that took place in Stockholm in June 2006. A superb single shot.The short went on to win the Golden Bear at </p>
        </div>
      </div>
    </div>
  </div>

</a>
</div>

请向我建议使用jquery或任何要使用的html类对此的任何解决方案。帮助我摆脱它,我知道如果我使用 this ,它将得到解决,但是如何使用它使它工作

1 个答案:

答案 0 :(得分:3)

问题在于,在事件回调中,您没有将选择器限制为仅在悬停的父级中进行操作。

$('.hover-text').hide();
   $('.movie-content').hover(
     function () {
        $('.movies_post_text').hide(); //<-- all matching elements, not just the
                                       //    one inside the hovered div
        $('.hover-text').show();       //<-- same here
     }, 
     function () {
        $('.movies_post_text').show(); //<-- " "
        $('.hover-text').hide();       //<-- " "
     }
  );

应该是

$('.hover-text').hide();
   $('.movie-content').hover(
     function () {
        $(this).find('.movies_post_text').hide();
        $(this).find('.hover-text').show();
     }, 
     function () {
        $(this).find('.movies_post_text').show();
        $(this).find('.hover-text').hide();
     }
  );