Простое наведение мыши не сработает - PullRequest
0 голосов
/ 25 января 2011

У меня странная проблема:

Я настроил h2 для зависания, и jQuery должен проверить, есть ли у h2 класс "main-active":

$('h2').hover(function (){

        if ($(this).not('.main-active')){$(this).css('color','white');}

        });

$('h2').mouseout(function (){$(this).css('color','black');});

Каким-то образомпродолжает зависать над белым h2, когда у него есть класс "main-active" ???

Есть идеи?

Ответы [ 2 ]

1 голос
/ 25 января 2011

Попробуйте это решение:

$('h2').hover(function (){

   if (!$(this).hasClass('main-active')){$(this).css('color','white');}

});

$('h2').mouseout(function (){$(this).css('color','black');});

Документация: http://api.jquery.com/hasClass/

0 голосов
/ 25 января 2011

почему вы используете hover, а затем mouseout вручную, когда сама функция hover связывает события mouseover / mouseout?

что не так с:

$('h2').hover(function() {
       var e = $(this);
       if (e.hasClass('main-active')){e.css('color','white');}
    }, function() {
       var e = $(this);
       if (e.hasClass('main-active')){e.css('color','black');}
    });
});

PS: это хорошая идея дляиспользуйте для этого только $ () и кэшируйте его в переменную, поэтому jQuery не нужно будет каждый раз анализировать элемент в объекте - как в приведенном выше коде: var e = $ (this)

...