Estou procurando uma maneira de converter este código jQuery (que é usado na seção de menu responsivo) para JavaScript puro.
Se for difícil de implementar, não há problema em usar outras estruturas 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
fonte
fonte
document.getElementById("menu").classList.toggle("hidden-phone")
:-)Respostas:
Resposta de 2014 :
classList.toggle()
é o padrão e é compatível com a maioria dos navegadores .Navegadores mais antigos podem usar use classlist.js para classList.toggle () :
Como um aparte, você não deve usar IDs ( eles vazam globais para o
window
objeto JS ).fonte
Aqui está a solução implementada com ES6
exemplo de uso
fonte
Dê uma olhada neste exemplo: JS Fiddle
fonte
Este também funciona em versões anteriores do IE.
fonte
\b
limite de palavra não é consistente com separadores de nome de classe css. por exemplo, não funciona se o nome da classe contiver traço ("-") char: btn, btn-red corresponderão a ambos'\\b' + 'btn' + '\\b'
!!Talvez seja mais sucinto:
fonte
Tente isto (espero que funcione):
fonte
Aqui está um código para IE> = 9 usando split ("") no className:
fonte
Se você deseja alternar uma classe para um elemento usando solução nativa, você pode tentar esta sugestão. Eu experimentei em diferentes casos, com ou sem outras classes do elemento, e acho que funciona muito bem:
fonte