Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

210
Visualizações
Agregar estilo en div en el enfoque del teclado

Estoy tratando de averiguar cómo puedo agregar style = display:block en div.sub_menu en el enfoque del teclado. En este momento solo puedo acceder a una etiqueta, pero no estoy seguro de cómo ingresar al sub_menú div. Los ejemplos que he visto no tienen antes para el menú desplegable.

https://blog.hubspot.com/website/accessible-drop-down-menus

A continuación se muestra mi código html y javascript:

 var menuItems = document.querySelectorAll('li.dir'); Array.prototype.forEach.call(menuItems, function(el, i) { el.querySelector('a').addEventListener("focus", function(event) { if (this.parentNode.className == "dir") { this.parentNode.className = "dir menu_hover"; this.setAttribute('aria-expanded', "true"); } else { this.parentNode.className = "dir"; this.setAttribute('aria-expanded', "false"); } event.preventDefault(); return false; }); });
 <ul class="primary"> <li class="dir current"> <a href="" title="Home" aria-haspopup="true"><span>Home</span></a> <div class="sub_menu"> <ul class="sub_sub_menu "> <li class=" "> <a href="" title="Test"><span>Test Page</span></a> </li> </ul> </div> </li> <li class="dir "> <a href="" title="Our Products" aria-haspopup="true"><span>Our Products</span></a> <div class="sub_menu"> <ul class="sub_sub_menu "> <li class=" "> <a href="" title="Test Products"><span>Test Products</span></a> </li> </ul> </div> </li> <li class=" "> <a href="" title="News"><span>News</span></a> </li> </ul>

¡Gracias!

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Hay "focusin" y "focusout" que necesitaría para alternar clases, como en una estructura de menú para abrir/cerrar como desee. Vea a continuación, cuando se enfoca el hogar, se muestra el elemento <a> debajo de "sub_sub_menu" display: block; al agregarle la clase .expanded . Cuando se elimina el foco, las clases se desactivan en el focusout eventos de foco.

 var menuItems = document.querySelectorAll('li.dir'); Array.prototype.forEach.call(menuItems, function(el, i) { el.querySelector('a').addEventListener('focusin', function(event) { event.preventDefault(); this.parentNode.className = "dir menu_hover"; this.setAttribute('aria-expanded', "true"); el.querySelector('div > ul > li > a').className = "expanded"; }); el.querySelector('a').addEventListener('focusout', function(event) { event.preventDefault(); this.parentNode.className = "dir"; this.setAttribute('aria-expanded', "false"); el.querySelector('div > ul > li > a').className = ""; }); });
 .expanded { color: red; background-color: black; display: block; }
 <ul class="primary"> <li class="dir current"> <a href="" title="Home" aria-haspopup="true"><span>Home</span></a> <div class="sub_menu"> <ul class="sub_sub_menu "> <li class=" "> <a href="" title="Test Page"><span>Test Page</span></a> </li> </ul> </div> </li> <li class="dir "> <a href="" title="Our Products" aria-haspopup="true"><span>Our Products</span></a> <div class="sub_menu"> <ul class="sub_sub_menu "> <li class=" "> <a href="" title="Test Products"><span>Test Products</span></a> </li> </ul> </div> </li> <li class=" "> <a href="" title="News"><span>News</span></a> </li> </ul>

Produce el siguiente resultado cuando Inicio está enfocado. ingrese la descripción de la imagen aquí

Si lo que realmente quieres son eventos flotantes,

  • reemplazar 'focusin' con 'mouseover'
  • reemplace 'focusout' con 'mouseout'
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda