Estoy buscando una forma de convertir este código jQuery (que se usa en la sección del menú receptivo) a JavaScript puro.
Si es difícil de implementar, está bien usar otros marcos de JavaScript.
$('.btn-navbar').click(function()
{
$('.container-fluid:first').toggleClass('menu-hidden');
$('#menu').toggleClass('hidden-phone');
if (typeof masonryGallery != 'undefined')
masonryGallery();
});
javascript
dom
toggle
max imax
fuente
fuente
document.getElementById("menu").classList.toggle("hidden-phone")
:-)Respuestas:
Respuesta de 2014 :
classList.toggle()
es el estándar y es compatible con la mayoría de los navegadores .Los navegadores más antiguos pueden usar classlist.js para classList.toggle () :
Además, no debería utilizar ID ( filtran globales en el
window
objeto JS ).fuente
Aquí está la solución implementada con ES6
ejemplo de uso
fuente
Eche un vistazo a este ejemplo: JS Fiddle
fuente
Este también funciona en versiones anteriores de IE.
fuente
\b
El límite de la palabra no es consistente con los separadores de nombre de clase CSS. por ejemplo, no funciona si el nombre de la clase contiene un guión ("-") char: btn, ¡¡btn-red coincidirán'\\b' + 'btn' + '\\b'
!!Esto es quizás más sucinto:
fuente
Prueba esto (con suerte funcionará):
fuente
Aquí hay un código para IE> = 9 usando split ("") en el className:
fuente
Si desea cambiar una clase a un elemento usando una solución nativa, puede probar esta sugerencia. Lo he probado en diferentes casos, con o sin otras clases sobre el elemento, y creo que funciona bastante bien:
fuente