И SLaks, и Nick правильно указывают, что вы можете использовать метод hover вместо mouseover и mouseout. Тем не менее, это больше для удобства и не должно иметь большого значения. Документация JQuery даже говорит ...
Вызов $ (селектор) .hover (handlerIn,
handlerOut) является сокращением для:
$ (Селектор) .mouseenter (handlerIn) .mouseleave (handlerOut);
Метод toggleClass аналогичен удобству.
Я вижу две реальные проблемы с вашим существующим кодом. Первый указывается и исправляется Ником, и это его модифицированный селектор.
Главное изменение в том, что вам нужно
Селектор div.navbg также, потому что
когда вы зависаете
в настоящее время быть
, так
div.nav больше не соответствует ему.
Вторая проблема, которую я вижу, состоит в том, что вы не заканчиваете свои функции. Ник и Слэкс не упоминают об этом, но обращаются, потому что их ответы написаны по-разному.
Если бы по какой-то причине вы не хотели использовать hover и toggleClass, ваш исправленный код мог бы выглядеть следующим образом:
$(function(){
$("li#hover-first").mouseover(function(){
$("div.nav").removeClass("nav").addClass("navbg");
}).mouseout(function(){
$("div.navbg").removeClass("navbg").addClass("nav");
});
});