Jquery Hover Проблема - PullRequest
       13

Jquery Hover Проблема

0 голосов
/ 17 сентября 2009

У меня есть один элемент, к которому прикреплен метод hover, и при наведении на него поверх него отображается еще один div ... к сожалению, как только верхний div отображает, он повторяет действия (так как я добавил тот же класс для него на самом деле остаться)

$(document).ready(function(){

    $(".cartHover").hover(
      function () {
        $("#uniquename4").fadeIn();
      }, 
      function () {
        $("#uniquename4").fadeOut();
      }
    );
  });

И, таким образом, у меня есть <div class="cartHover">, который при наведении курсора отображает <div id="uniquename4" class="cartHover">, но он делает FadeIn дважды. Помогите пожалуйста!

Ответы [ 3 ]

2 голосов
/ 27 января 2012

Если вы не хотите, чтобы анимационная метка складывалась на вас, вам нужно также включить туда .stop ():

$(function(){
  $('.cartHover').mouseenter(function(){
    $(this).find('.showMe').stop().show();
  }).mouseleave(function(){
    $(this).find('.showMe').stop().hide();
  });
});
2 голосов
/ 17 сентября 2009

Так что было бы лучше иметь:

CSS

<div id="someID" class="cartHover">
  <div id="someId" class="showMe">
  </div>
</div>

<div id="someID" class="cartHover">
  <div id="someId" class="showMe">
  </div>
</div>

JQuery

$(function(){
  $('.cartHover').mouseenter(function(){
    $(this).find('.showMe').show();
  }).mouseleave(function(){
    $(this).find('.showMe').hide();
  });
});
1 голос
/ 17 сентября 2009

Простой ответ. Посмотри, что ты здесь делаешь. У тебя два деления с классом, cartHover. Таким образом, при наведении первого элемента div отображается # uniquename4. Когда отображается uniquename4, при наведении курсора он снова исчезнет. Все это связано с вашим селектором, вы связываете событие hover со всеми экземплярами элементов с помощью класса cartHover - этот выбор включает в себя как div, который по умолчанию видим, так и # uniquename4, который отображается при наведении курсора. Я бы предложил что-то вроде:

<div id="showSomething" class="cart-class">Content</div>
<div id="toBeShown" class="cart-class">Content</div>

$(document).ready(function() {
    $('#showSomething').hover(
         function() {
            $('#toBeShown').fadeIn();
         },
         function() {
             $('#toBeShown').fadeOut();
         }
     );
});
...