Самый простой способ с помощью jQuery:
$('a').click(
function(){
$('.highlight').removeClass('highlight');
$(this).closest('li').addClass('highlight');
// I'd use:
// return false;
// as well, but you've addressed that already, in your inline onclick handlers.
});
Демонстрация JS Fiddle .
Но это без просмотра оставшейся части вашего JavaScript или пользовательского интерфейса,Поэтому вам, возможно, придется адаптировать его к вашим потребностям.
Пересмотр jQuery для лучшего соответствия вашим потребностям и демонстрации использования CSS: hover
$('li').click(
function(){
$('.highlight').removeClass('highlight');
$(this).addClass('highlight');
});
CSS:
li {
background-color: #fff;
-webkit-transition: background-color 0.2s linear;
-moz-transition: background-color 0.2s linear;
-o-transition: background-color 0.2s linear;
}
.highlight,
li:hover {
background-color: #ffa;
-webkit-transition: background-color 0.2s linear;
-moz-transition: background-color 0.2s linear;
-o-transition: background-color 0.2s linear;
}
Пересмотренный JS Fiddle с использованием CSS: hover псевдоэлемент
В качестве альтернативы используйте метод jQuery hover()
:
$('li').click(
function(){
$('.highlight').removeClass('highlight');
$(this).addClass('highlight');
});
$('li').hover(
function(){
$(this).addClass('highlight');
},
function(){
$(this).removeClass('highlight');
});
Демонстрация JS Fiddle с использованием метода jQuery hover()
.
Ссылки: