JQuery при наведении курсора с несколькими вызовами функции () не работает, как я ожидал - PullRequest
1 голос
/ 15 июля 2009

Привет, я пытаюсь сделать следующее:

onMouseOver Я хочу: 1. удалите существующий класс (navLinkTD), который обеспечивает черную рамку вокруг таблицы. 2. Добавьте новый класс (navLinkTDActive), который предоставляет границу вокруг верхней, левой и правой сторон, но имеет фоновое изображение, которое меняет границу снизу, чтобы иметь маленькую стрелку.

Как только мышь покинула активную область, я хочу: 3. Я хочу удалить класс navLinkTDActive 4. Я хочу повторно добавить класс navLinkTD

Что происходит, так это то, что в onMouseOver / hover все стили удаляются. После удаления курсора из активной области появляется класс navLinkTDActive.

Вот фрагмент кода, вызывающий проблему: -

$(".navLinkTD").hover(
        function() { $(this).removeClass("navLinkTD"); },                                 
        function() { $(this).addClass("navLinkTDActive"); },
        function() { $(this).removeClass("navLinkTDActive"); },
        function() { $(this).addClass("navLinkTD"); }
        );

Ответы [ 3 ]

5 голосов
/ 15 июля 2009

Вы передаете 4 аргумента функции hover, где она принимает только 2. Попробуйте изменить код следующим образом:

$(".navLinkTD").hover(
        function() { 
                $(this).removeClass("navLinkTD");                                                              
                $(this).addClass("navLinkTDActive");
        },
        function() {
                $(this).removeClass("navLinkTDActive");        
                $(this).addClass("navLinkTD");
        }
);

Поскольку jquery поддерживает связывание, вы можете при желании сократить операторы до таких, как:

$(this).removeClass("navLinkTD").addClass("navLinkTDActive");
0 голосов
/ 15 июля 2009

. Hover принимает только два функциональных параметра; попробуйте это:

$(".navLinkTD").hover(
        function () { $(this).removeClass("navLinkTD").addClass("navLinkTDActive"); },
        function () { $(this).removeClass("navLinkTDActive").addClass("navLinkTD"); }
        );
0 голосов
/ 15 июля 2009

Вам нужно всего 2 функции. Один за снова и один за. Объедините их.

...