停止slideToggle在调整大小时弹跳

时间:2014-06-20 09:00:36

标签: jquery responsive-design slidetoggle

我有一个响应式菜单,隐藏在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');

0 个答案:

没有答案