You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
2.4 KiB
75 lines
2.4 KiB
jQuery(document).ready(function($) {
|
|
// 处理桌面端下拉菜单
|
|
$('.menu-item-has-children').hover(
|
|
function() {
|
|
// 鼠标悬停时显示子菜单
|
|
$(this).addClass('active');
|
|
},
|
|
function() {
|
|
// 鼠标离开时隐藏子菜单
|
|
$(this).removeClass('active');
|
|
}
|
|
);
|
|
|
|
// 处理移动端下拉菜单点击
|
|
$('.menu-item-has-children > a').on('click', function(e) {
|
|
// 在移动端阻止默认链接跳转,改为切换子菜单显示
|
|
if ($(window).width() <= 768) {
|
|
e.preventDefault();
|
|
|
|
var $parent = $(this).parent();
|
|
var $subMenu = $parent.find('.sub-menu').first();
|
|
|
|
// 切换当前菜单项的子菜单
|
|
$subMenu.slideToggle(200);
|
|
$parent.toggleClass('active');
|
|
|
|
// 关闭其他同级菜单项的子菜单
|
|
$parent.siblings('.menu-item-has-children').removeClass('active')
|
|
.find('.sub-menu').slideUp(200);
|
|
|
|
|
|
}
|
|
});
|
|
|
|
// 处理移动端三级菜单点击
|
|
$('.sub-menu .menu-item-has-children > a').on('click', function(e) {
|
|
if ($(window).width() <= 768) {
|
|
e.preventDefault();
|
|
|
|
var $parent = $(this).parent();
|
|
var $subSubMenu = $parent.find('.sub-menu').first();
|
|
|
|
// 切换三级菜单
|
|
$subSubMenu.slideToggle(200);
|
|
$parent.toggleClass('active');
|
|
|
|
// 关闭其他同级三级菜单
|
|
$parent.siblings('.menu-item-has-children').removeClass('active')
|
|
.find('.sub-menu').slideUp(200);
|
|
}
|
|
});
|
|
|
|
|
|
|
|
// 点击页面其他地方时关闭所有下拉菜单(移动端)
|
|
$(document).on('click', function(e) {
|
|
if ($(window).width() <= 768) {
|
|
if (!$(e.target).closest('.menu-item-has-children').length) {
|
|
$('.menu-item-has-children').removeClass('active')
|
|
.find('.sub-menu').slideUp(200);
|
|
|
|
}
|
|
}
|
|
});
|
|
|
|
// 窗口大小改变时重置菜单状态
|
|
$(window).on('resize', function() {
|
|
if ($(window).width() > 768) {
|
|
// 桌面端:移除移动端的状态
|
|
$('.menu-item-has-children').removeClass('active');
|
|
$('.sub-menu').removeAttr('style');
|
|
|
|
}
|
|
});
|
|
}); |