Jquery幻灯片切换到文档就绪状态并调整浏览器大小
我有以下代码,除了调整浏览器的大小外,这些代码非常有效。代码基本上会在“文档准备就绪”和“浏览器调整大小”时检查浏览器大小,以确定是否应显示菜单。但是,在“调整大小”菜单上,单击时会上下滑动多次。我假设它注册为多次调整大小,因此多次激活滑块切换。请参见问题示例:Jquery幻灯片切换到文档就绪状态并调整浏览器大小,jquery,slidetoggle,window-resize,Jquery,Slidetoggle,Window Resize,我有以下代码,除了调整浏览器的大小外,这些代码非常有效。代码基本上会在“文档准备就绪”和“浏览器调整大小”时检查浏览器大小,以确定是否应显示菜单。但是,在“调整大小”菜单上,单击时会上下滑动多次。我假设它注册为多次调整大小,因此多次激活滑块切换。请参见问题示例: 实现这一点有多种方法,但使用超时是最简单的方法。这将检查用户是否已完成大小调整 function doMenu() { //your stuff to happen here } var TO = false; $(window).
实现这一点有多种方法,但使用超时是最简单的方法。这将检查用户是否已完成大小调整
function doMenu() {
//your stuff to happen here
}
var TO = false;
$(window).resize(function(){
if(TO !== false)
clearTimeout(TO);
TO = setTimeout(doMenu, 200); //200 milisecond check
});
请参见此处的示例问题是,无论何时调整浏览器的大小,都会触发回调并绑定click事件。因此,如果多次调整大小,则click事件会被绑定多次,因此回调会被调用多次。只需检查单击处理程序本身内部的宽度,并仅分配一次单击处理程序:
$('.icon-menu-2').click(function () {
var width = $(window).width();
if (width < 530) {
$('.menu').slideToggle();
if ($('.menu2').is(":visible")) {
$('.menu2').hide();
} else {
$('.menu2').show();
}
return false;
}
});
$('.icon-menu-2')。单击(函数(){
变量宽度=$(窗口).width();
如果(宽度<530){
$('.menu').slideToggle();
如果($('.menu2')。是(“:可见”)){
$('.menu2').hide();
}否则{
$('.menu2').show();
}
返回false;
}
});
我想我要用“doMenu”替换“resizeStuff”?它似乎没有激活我的功能。你需要使用slideToggle功能来查看我的问题:这正是我想要的。thanx@Wayneioth此解决方案对我有效,标记为已接受的答案没有意义。如果您在530px以下调整大小,那么问题仍然存在。顺便问一下,2016年还有别的办法吗???这不起作用,和问题是一样的。如果你总是在530以下调整大小,那么问题仍然存在。
$('.icon-menu-2').click(function () {
var width = $(window).width();
if (width < 530) {
$('.menu').slideToggle();
if ($('.menu2').is(":visible")) {
$('.menu2').hide();
} else {
$('.menu2').show();
}
return false;
}
});