Javascript Jquery子菜单accordion在单击时关闭并打开
我有汉堡包菜单,我用jquery做了一个手风琴式的子菜单。尽管它只适用于1084px及更小的设备。 否则,菜单将使用桌面上的悬停式子菜单 尽管出于某种原因,使用这两种技术(使用css悬停和使用jquery的手风琴)是行不通的。 因此,我将媒体查询添加到jquery中,这使得悬停和手风琴可以工作 但是 一旦按下手风琴,它会自动打开和关闭多次,这是错误的,因此无法正常工作。 有人能帮我吗?这个问题只有在我将媒体查询添加到Jquery时才会发生Javascript Jquery子菜单accordion在单击时关闭并打开,javascript,html,jquery,css,Javascript,Html,Jquery,Css,我有汉堡包菜单,我用jquery做了一个手风琴式的子菜单。尽管它只适用于1084px及更小的设备。 否则,菜单将使用桌面上的悬停式子菜单 尽管出于某种原因,使用这两种技术(使用css悬停和使用jquery的手风琴)是行不通的。 因此,我将媒体查询添加到jquery中,这使得悬停和手风琴可以工作 但是 一旦按下手风琴,它会自动打开和关闭多次,这是错误的,因此无法正常工作。 有人能帮我吗?这个问题只有在我将媒体查询添加到Jquery时才会发生 jQuery(document).ready(fun
jQuery(document).ready(function($) {
$(window).resize(function() {
if ($(window).width() < 500) {
function initMenu() {
$('#nav ul').hide();
$('#nav li a').click(
function() {
var checkElement = $(this).next();
if ((checkElement.is('ul')) && (checkElement.is(':visible'))) {
$('#nav ul:visible').slideToggle('normal');
}
if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
removeActiveClassFromAll();
$(this).addClass("active");
$('#nav ul:visible').slideToggle('normal');
checkElement.slideToggle('normal');
return false;
}
if ($(this).siblings('ul').length == 0 && $(this).parent().parent().attr('id') == 'nav') {
removeActiveClassFromAll();
$(this).addClass("active");
$('#nav ul:visible').slideToggle('normal');
return false;
}
}
);
}
function removeActiveClassFromAll() {
$('#nav li a').each(function(index) {
$(this).removeClass("active");
});
}
$(document).ready(function() {
initMenu();
});
$('#nav').click(function(e) {
e.stopPropagation();
})
$(document).click(function() {
$('#nav').children('li').each(function() {
if ($(this).children('ul').css('display') == 'block') {
$(this).children('ul').slideToggle('normal')
$(this).children('a').removeClass('active')
}
})
})
}
});
});
jQuery(文档).ready(函数($){
$(窗口)。调整大小(函数(){
如果($(窗口).width()<500){
函数initMenu(){
$('#nav ul').hide();
$(#nav li a')。单击(
函数(){
var checkElement=$(this.next();
如果((checkElement.is('ul'))和(&(checkElement.is(':可见))){
$('#导航ul:visible')。滑动切换('normal');
}
如果((checkElement.is('ul'))&(!checkElement.is(':visible')){
removeActiveClassFromAll();
$(此).addClass(“活动”);
$('#导航ul:visible')。滑动切换('normal');
检查元素。滑动切换(“正常”);
返回false;
}
if($(this.sibbines('ul').length==0&&$(this.parent().parent().attr('id')=='nav')){
removeActiveClassFromAll();
$(此).addClass(“活动”);
$('#导航ul:visible')。滑动切换('normal');
返回false;
}
}
);
}
函数removeActiveClassFromAll(){
$(#nav li a')。每个(函数(索引){
$(此).removeClass(“活动”);
});
}
$(文档).ready(函数(){
initMenu();
});
$('#nav')。单击(函数(e){
e、 停止传播();
})
$(文档)。单击(函数(){
$('#nav')。子项('li')。每个(函数(){
if($(this).children('ul').css('display')='block')){
$(this).children('ul').slideToggle('normal'))
$(this.children('a').removeClass('active'))
}
})
})
}
});
});
这是一个jsfiddle
如果(window.matchMedia(“(最大宽度:500px)”).matches,请提前感谢{
}
这将起作用,但是您需要刷新页面以使其工作。如果(window.matchMedia((最大宽度:500px)”).matches){
}
这将起作用,但是您需要刷新页面以使其工作。这是一个JSFIDLE这是js FIDLE sorry这是一个JSFIDLE这是js FIDLE抱歉