我有以下 jQuery 代码用于我的导航响应,我需要将其转换为常规的 Javascript。我试图了解它是如何removeAttr与儿童一样有效的。
有谁知道如何将以下代码转换为纯 JavaScript 吗?
let responsiveMenu = function() {
var menuType = 'desktop';
$(window).on('load resize', function() {
var currMenuType = 'desktop';
if (matchMedia('only screen and (max-width: 991px)').matches) {
currMenuType = 'mobile';
}
if (currMenuType !== menuType) {
menuType = currMenuType;
if (currMenuType === 'mobile') {
var $mobileMenu = $('#mainnav').attr('id', 'mainnav-mobi').hide();
var hasChildMenu = $('#mainnav-mobi').find('li:has(ul)');
$('#header #site-header-inner').after($mobileMenu);
hasChildMenu.children('ul').hide();
hasChildMenu.children('a').after('<span class="btn-submenu"></span>');
$('.btn-menu').removeClass('active');
} else {
var $desktopMenu = $('#mainnav-mobi').attr('id', 'mainnav').removeAttr('style');
$desktopMenu.find('.submenu').removeAttr('style');
$('#header').find('.nav-wrap').append($desktopMenu);
$('.btn-submenu').remove();
}
}
});
$('.mobile-button').on('click', function() {
$('#mainnav-mobi').slideToggle(300);
$(this).toggleClass('active');
});
$(document).on('click', '#mainnav-mobi li .btn-submenu', function(e) {
$(this).toggleClass('active').next('ul').slideToggle(300);
e.stopImmediatePropagation()
});
};
交互式爱情
呼唤远方
相关分类