我有一个响应式菜单,隐藏在590px下,并显示在该宽度上。
此代码在$(window).ready上正常工作,但在调整大小时是蹩脚的。
$(window).resize(function () {
if ($(window).width() > 0 && $(window).width() < 590){
$('.container').click(function() {
$( '.category' ).slideToggle();
});
}
else if ($(window).width() > 591){
$( '.category' ).show();
}
});
确实,调整大小后会多次触发菜单。
这似乎是一个常见的问题,但我不知道如何解决它。
/////////////编辑///////////
找到一种方法,使用.unbind来阻止弹跳。希望它可以帮助别人。
function slideMenu(){
$( '.menu' ).slideToggle();
}
$(window).on('resize',function () {
if ($(window).width() > 0 && $(window).width() < 590){
$('.menu').hide();
$('.container').unbind('click', slideMenu);
$('.container').on('click', slideMenu);
}
else if ($(window).width() > 591){
$('.menu').show();
$('.container').off('click', slideMenu);
}
}).trigger('resize');