【发布时间】:2014-09-02 15:38:08
【问题描述】:
在小于 600 像素的屏幕上查看时,我有一个隐藏在手风琴中的菜单。 在大于 600 像素的屏幕上,菜单是可见的。
jsfiddle-http://jsfiddle.net/ashatron/zbzqoz2f/
它工作正常,但是当我将窗口大小调整为大于 600 像素,然后回到小于 600 像素,然后按查看站点地图它循环动画多次。
我认为它为每个调整大小事件运行该函数,该函数将手风琴排队,然后循环它。但我不确定如何最好地订购语法以使其正常工作。
任何帮助将不胜感激!
footernavmenufn = function() {
var current_width = $(window).width();
if (current_width < 600) {
$('.footer-accordion-head').show();
$('.footer-accordion-body').hide();
$('.footer-accordion-head').click(function () {
$(".footer-accordion-body").slideToggle('400');
// console.log('hmmm');
return false;
}).next().hide();
} else {
$('.footer-accordion-head').hide();
$('.footer-accordion-body').show();
}
};
$(document).ready(function () {
footernavmenufn();
});
$(window).resize(function(){
footernavmenufn();
//console.log('OMG-WHY-YOU-NO-WORK');
});
【问题讨论】:
-
每次调用
.click()都会添加另一个绑定。而且,这些都不是不受约束的。因此,通过在低于 600 像素的情况下继续调整窗口大小,您最终可以得到 100 个处理程序,每个处理程序都准备好排队另一个slideToggle()。
标签: javascript jquery html responsive-design