Я использовал функцию onBefore в serialScroll, чтобы выделить текущий прокручиваемый выбор в списке навигации, хотя я также хочу, чтобы навигация выделялась, если она наведена. Это работает, за исключением случаев, когда мышь покидает область. Затем из него удаляются все стили.
Я попытался добавить класс к текущему элементу навигации и использовать .not, чтобы убедиться, что выделенный элемент навигации не лишен своего стиля, хотя это не работает.
Код выглядит следующим образом:
onBefore: function(){
$('#selector ul li').eq($counter).find('a').css({color: '#d5d5d6'});
if($counter == 3){
$counter = 0;
} else {
$counter++;
}
if($counter == 0){
$('#selector ul li').eq($counter).find('a').css({color: '#666666'}).addClass('highlighted');
}
if($counter == 1){
$('#selector ul li').eq($counter).find('a').css({color: '#55b447'}).addClass('highlighted');
}
if($counter == 2){
$('#selector ul li').eq($counter).find('a').css({color: '#2685c7'}).addClass('highlighted');
}
if($counter == 3){
$('#selector ul li').eq($counter).find('a').css({color: '#f6db0a'}).addClass('highlighted');
}
}
});
});
// Hover Selector links to respective color
$('#selector ul li').eq(0).not('.highlighted').find('a').hover(
function(){
$(this).css({color: '#666666'});
},
function() {
$(this).css({color: '#d5d5d6'});
}
);
$('#selector ul li').eq(1).not('.highlighted').find('a').hover(
function(){
$(this).css({color: '#55b447'});
},
function() {
$(this).css({color: '#d5d5d6'});
}
);
$('#selector ul li').eq(2).not('.highlighted').find('a').hover(
function(){
$(this).css({color: '#2685c7'});
},
function() {
$(this).css({color: '#d5d5d6'});
}
);
$('#selector ul li').eq(3).not('.highlighted').find('a').hover(
function(){
$(this).css({color: '#f6db0a'});
},
function() {
$(this).css({color: '#d5d5d6'});
}
);
1 ответ
Будьте осторожны, так как .not
возвращает объект JQuery, а не логическое значение, соедините .not
с .length
, чтобы получить ожидаемый результат. Или используйте .hasClass
для более ясной логики.
Похожие вопросы
Новые вопросы
jquery
jQuery — это библиотека JavaScript. Также рассмотрите возможность добавления тега JavaScript. jQuery — это популярная кросс-браузерная библиотека JavaScript, которая упрощает обход объектной модели документа (DOM), обработку событий, анимацию и взаимодействие AJAX, сводя к минимуму расхождения между браузерами. Вопрос с тегом jQuery должен быть связан с jQuery, поэтому jQuery должен использоваться рассматриваемым кодом, и в вопросе должны быть как минимум элементы, связанные с использованием jQuery.
console.debug($('#selector ul li').eq(1).not('.highlighted'));
и посмотрите, что получится.$('#selector ul li').eq(1)
и$('#selector ul li').eq(1).not('.highlighted'))
, используя console.debug или console.log.