Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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/jquery/86.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
Javascript 调整window.width而不是高度时执行此功能_Javascript_Jquery_Html - Fatal编程技术网

Javascript 调整window.width而不是高度时执行此功能

Javascript 调整window.width而不是高度时执行此功能,javascript,jquery,html,Javascript,Jquery,Html,我正在开发一个快速响应的网站,我有一些标签,可以在小屏幕上从标签变成手风琴。以下是我目前的做法: var myGlobalVariable = {}; $(window).resize(function(e) { duringResize(); myGlobalVariable.windowWidth = window.innerWidth; }); function widthHasChanged() { return window.innerWidth !== m

我正在开发一个快速响应的网站,我有一些标签,可以在小屏幕上从标签变成手风琴。以下是我目前的做法:

var myGlobalVariable = {};

$(window).resize(function(e) {
    duringResize();
    myGlobalVariable.windowWidth = window.innerWidth;
});

function widthHasChanged() {
    return window.innerWidth !== myGlobalVariable.windowWidth;
}

function duringResize() {
    if(widthHasChanged()) {
        if(Modernizr.mq('all and (min-width:1000px)')) {
            /* Do stuff for tabs */
        } else {
            /* Do stuff for accordion */
        }
    }
}
我对此不满意,因为我必须使用一个全局变量来存储浏览器窗口的最后一个宽度,以便检查宽度是否已更改

我必须这样做的原因是,在手机上,当标签处于手风琴模式时,点击一个标签实际上会使文档更高,以容纳标签内容。出于某种原因,这被归类为调整大小,即使“窗口”在手机上仍然是相同的大小。这意味着即使宽度没有改变,也会调用我的制表符/手风琴代码,这会把事情搞砸


我有没有遗漏什么,或者这是实现这一目标的唯一途径?欢迎使用jQuery和vanilla javascript解决方案。

对于窗口宽度的更改,没有可绑定的特定事件。我觉得你的解决方案很好


我唯一能想到的另一种方法是定期检查计时器内的$(window).width。总的来说,我认为单一全局变量更可取:)

谢谢,我怀疑,但这是我整天都在关注的事情之一,我已经实施了各种解决方案,取得了不同的成功。这是第一个真正正常工作的。只是没有我想要的那么优雅。