2013-07-11 3 views
1

У меня есть выпадающее меню, и я использую функцию mouseenter(). Если мышь попадает в область заднего фона моего селектора, возвращается к желтому. Но если я уйду из области моего селектора, я хочу установить цвет по умолчанию в области моего селектора, не используя функцию mouseleave().Возврат к цвету по умолчанию с помощью JQuery

Как это исправить?

$(document).ready(function(){ 
    $("#l_ev_men").mouseenter(function(){ 
     $(this).css("background-color","yellow"); 
     $(this).css("color","black"); 
    }); 

    $("#l_ev_men").mouseleave(function(){ // ı dont want to use this function 
    }); 
}); 
+2

Почему вы не хотите использовать MouseLeave? – j08691

+0

Вы можете использовать .hover() вместо ввода мыши/оставить - http://api.jquery.com/hover/ – Matt

+3

Почему вы не используете CSS? – Ryan

ответ

3

Обычно лучше изменить класс, используя toggleClass(). Еще лучше, вы можете сделать что-то такое простое без jquery, просто используя класс psuedo :hover CSS.

.hoverable:hover { 
    background-color:yellow; 
    color:black; 
} 

затем:

<li class="hoverable <otherstuff>">...</li>... 

или

<td class="hoverable <otherstuff>">...</td>... 
5

Я бы рекомендовал добавлять и удалять классы CSS.

#l_ev_men:hover, #l_ev_men.hover { 
    color: black; 
    background-color: yellow;  
} 

Не все браузеры имеют поддержку для: наведите псевдо-селектор, вы можете использовать addClass()removeClass() и это будет соответствовать #l_ev_men.hover селектор на CSS.

$("#l_ev_men").hover(
    function in(){ 
     $(this).addClass("hover"); 
    }, 
    function out(){ 
     $(this).removeClass("hover"); 
    } 
); 
Смежные вопросы