6 392
edições
Sem resumo de edição |
Sem resumo de edição |
||
Linha 67: | Linha 67: | ||
return; // Sai da função se o dropdown estiver escondido ou vazio | return; // Sai da função se o dropdown estiver escondido ou vazio | ||
} | } | ||
// Remove a seleção atual antes de navegar | |||
const allItems = dropdown.querySelectorAll('.dropdown-item'); | |||
allItems.forEach(item => item.classList.remove('active')); | |||
const activeItem = document.querySelector('.dropdown-item.active'); | const activeItem = document.querySelector('.dropdown-item.active'); | ||
Linha 72: | Linha 76: | ||
if (event.key === 'ArrowDown') { | if (event.key === 'ArrowDown') { | ||
if (activeItem) { | if (activeItem) { | ||
const nextItem = activeItem.nextElementSibling || dropdown.firstChild; // Vai para o próximo ou volta para o início | const nextItem = activeItem.nextElementSibling || dropdown.firstChild; // Vai para o próximo ou volta para o início | ||
nextItem.classList.add('active'); | nextItem.classList.add('active'); | ||
Linha 83: | Linha 86: | ||
} else if (event.key === 'ArrowUp') { | } else if (event.key === 'ArrowUp') { | ||
if (activeItem) { | if (activeItem) { | ||
const previousItem = activeItem.previousElementSibling || dropdown.lastChild; // Vai para o anterior ou volta para o final | const previousItem = activeItem.previousElementSibling || dropdown.lastChild; // Vai para o anterior ou volta para o final | ||
previousItem.classList.add('active'); | previousItem.classList.add('active'); |