我有一些代码可以作为菜单的点击切换。我只希望代码在窗口宽度低于 768 像素时运行,所以我将它包装在一个 if 语句中,计算窗口宽度。我将此函数绑定到页面调整大小事件并准备好页面。它在某些时候有效,但在其他时候无效。调整结果面板的大小几次,你就会明白我的意思了......
问问题
2096 次
1 回答
4
不是关键问题,而是:jQuery("#nav-btn a.togglemenu")
应该是jQuery("#nav a.togglemenu")
您已经在aaMenus
函数中添加了点击处理程序,所以这一行:
jQuery(window).bind("resize", aaMenus);
...正在运行该功能,并在每次调整窗口大小时添加一个新的单击处理程序。如果单击处理程序已添加偶数次,则您将同时打开和关闭,没有可见的结果。即使它被添加了奇数次,您也会连续运行数百次切换,从而导致巨大的延迟。
您需要做的就是将该单击事件处理程序从您的函数中取出:http: //jsfiddle.net/mblase75/LyUzr/10/
function aaMenus() {
if (jQuery(window).width() > 768) { // iPad and Desktop
/* Dropdown Menu */
jQuery("ul#menu").addClass("dropdown").removeClass("toggle").show();
jQuery("a.togglemenu").hide();
//.. Drop down function will go here later
} else { // Mobiles
/* Toggle menu */
jQuery("ul#menu").addClass("toggle").removeClass("dropdown").hide();
jQuery("a.togglemenu").show();
}
}
jQuery(window).bind("resize", aaMenus);
jQuery(document).ready(function() {
jQuery("#nav a.togglemenu").click(function() {
jQuery("ul.toggle").toggle();
});
aaMenus();
});
于 2011-11-03T17:35:39.487 回答