Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery幻灯片切换到文档就绪状态并调整浏览器大小_Jquery_Slidetoggle_Window Resize - Fatal编程技术网

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;
    }
});