【发布时间】:2013-11-15 10:09:40
【问题描述】:
我正在使用引导框架,但我的导航有问题。
基本上我的导航有两种不同的导航工作方式。 “桌面”方式和“移动”方式。
在“桌面”版本中,当用户单击导航链接时,子菜单将出现在整个屏幕上。这可以正常工作。
我想“移动”版本是您的标准移动导航,只有我的 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 sn-p 而不是移动窗口。
我以前从未使用过 IF 语句 - 我做错了吗?任何帮助表示赞赏!
【问题讨论】:
标签: javascript jquery twitter-bootstrap navigation nav