Я ищу способ преобразовать этот код jQuery (который используется в разделе адаптивного меню) в чистый JavaScript.
Если сложно реализовать, можно использовать другие фреймворки JavaScript.
$('.btn-navbar').click(function()
{
$('.container-fluid:first').toggleClass('menu-hidden');
$('#menu').toggleClass('hidden-phone');
if (typeof masonryGallery != 'undefined')
masonryGallery();
});
javascript
dom
toggle
макс imax
источник
источник
document.getElementById("menu").classList.toggle("hidden-phone")
:-)Ответы:
Ответ 2014 года :
classList.toggle()
является стандартом и поддерживается большинством браузеров .Старые браузеры могут использовать classlist.js для classList.toggle () :
Кстати, вы не должны использовать идентификаторы ( они пропускают глобальные данные в
window
объект JS ).источник
Вот решение, реализованное с ES6
пример использования
источник
Взгляните на этот пример: JS Fiddle
источник
Он также работает в более ранних версиях IE.
источник
\b
граница слова не согласуется с разделителями имен классов css. например, это не сработает, если имя класса содержит тире ("-") char: btn, btn-red будут совпадать'\\b' + 'btn' + '\\b'
!!Возможно, это более лаконично:
источник
Попробуйте это (надеюсь, это сработает):
источник
Вот код для IE> = 9 с использованием split ("") в className:
источник
Если вы хотите переключить класс на элемент с использованием собственного решения, вы можете попробовать это предложение. Я пробовал это в разных случаях, с другими классами элемента или без них, и я думаю, что он в значительной степени работает:
источник