Jquery 停止滑动在调整大小时从反弹中切换

Jquery 停止滑动在调整大小时从反弹中切换,jquery,responsive-design,slidetoggle,Jquery,Responsive Design,Slidetoggle,我有一个响应菜单,它隐藏在590px下,显示在这个宽度上 此代码在$(window)上正常工作。准备就绪,但在调整大小时无效 $(window).resize(function () { if ($(window).width() > 0 && $(window).width() < 590){ $('.container').click(function() { $( '.category' ).slideToggle(); }); } else if (

我有一个响应菜单,它隐藏在590px下,显示在这个宽度上

此代码在$(window)上正常工作。准备就绪,但在调整大小时无效

$(window).resize(function () {

if ($(window).width()  > 0 && $(window).width()  < 590){ 
$('.container').click(function() {
$( '.category' ).slideToggle();
 });
}
else if ($(window).width()  > 591){ 
$( '.category' ).show();
}
});
$(窗口)。调整大小(函数(){
如果($(window.width()>0&$(window.width()<590){
$('.container')。单击(函数(){
$('.category').slideToggle();
});
}
如果($(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');
函数slideMenu(){
$('.menu').slideToggle();
}
$(窗口).on('resize',函数(){
如果($(window.width()>0&$(window.width()<590){
$('.menu').hide();
$('.container')。取消绑定('click',slideMenu);
$('.container')。在('click',slideMenu)上;
}
如果($(window.width()>591){
$(“.menu').show();
$(“.container”).off('click',slideMenu);
}
}).trigger('resize');

您是否可以显示相关的css和html,或者更好地提供一个小提琴?你的代码没有真正的意义,我相信有一种更好的方法来处理媒体查询和签入处理程序,而不是你现在的方法。现在更新我的帖子。谢谢你的帮助。你不应该使用unbind。它已被弃用。使用off()方法(在else语句中正确使用)。我仍然认为有一种更简单的方法可以使用媒体查询并在处理程序中进行检查……我不知道如何使用检查功能?