我正在使用引导框架,但我的导航有问题。
基本上我的导航有两种不同的导航工作方式。“桌面”方式和“移动”方式。
在“桌面”版本中,当用户单击导航链接时,子菜单将出现在整个屏幕上。这是正常工作的。
我想“移动”版本是您的标准移动导航,只有我的 jQuery 会寻找任何父母,然后在它旁边添加一个 + 按钮。当用户单击“+”时,孩子们将向下切换并显示。这也正常工作。
如果用户出于某种原因从“桌面”切换到“移动”导航(我想检查响应性),当我尝试调整窗口大小并让它们都工作时,问题就出现了。
这是我的 jQuery:
$(".subnav").hide();
$('.nav-collapse li').each(function(){
var hasKids = $(this).find('ul').length > 0;
if(hasKids){
$(this).children('a')
.append('<button>+</button>');
}
});
function whatnav() {
if ($(window).width() < 767) {
$('.nav-collapse li').on('click', 'button', function(e){
e.preventDefault();
var plusOrMinus = $.trim($(this).text());
if(plusOrMinus == '+'){
$(this).text('-');
} else {
$(this).text('+');
}
$(this).parents('li').find('.subnav').toggle(250);
});
} else {
$("nav a").click(function () {
$(this).parent('li').find(".subnav").css("display","table").fadeIn(250);
event.stopPropagation();
});
$(".subnav").click(function() {
$(this).fadeOut(250);
});
}
}
$(document).ready(whatnav);
$(window).resize(whatnav);
我创建了函数“whatnav”,然后做了一个 IF 语句——如果窗口低于 767px,则使用“移动”导航,否则使用“桌面”导航 jquery。
如果我以“移动”模式开始,然后移至桌面,则一切正常。但是,如果我再改回“移动”窗口宽度,它仍然使用“桌面”jQuery 片段而不是移动的。
我以前从未使用过 IF 语句 - 我做错了吗?任何帮助表示赞赏!