现在解决了,谢谢

我已经看到很多有关resize()问题的近乎答案,这是我的代码:

'larger()'是我想要在屏幕宽度不考虑设备方向> = 501时调用的布局函数,'smaller()'是我要在屏幕宽度
我的问题是,当window.height更改时,我不希望调用这些函数。请注意,在我的页面中,我正在移动视图中使用手风琴,并且如果展开手风琴面板,即使未调整浏览器窗口的大小,它也会增加页面的高度。 jQuery将此视为window.resize。

$(window).resize(function(e) {
    var winWidth = $(window).width();
    if (winWidth >= 501){
       larger();
    }
    if (winWidth < 501){
       smaller();
    }
});


感谢您提供任何答案,并让我知道是否需要澄清任何内容。

我在jquery-1.11.0.min.js中使用jquery-ui-1.10.3.custom.min.js

谢谢

最佳答案

如何存储对先前宽度的引用,如果宽度在调整大小时发生了变化,请调用函数-否则跳过它。像这样:

// If you don't want it to change the first time
// then set this value on document load to get initial window width
var prevWinWidth = 0;

$(window).resize(function(e) {
    var winWidth = $(window).width();

    if(winWidth != prevWinWidth) {
        if (winWidth >= 501){
            larger();
        }
        if (winWidth < 501){
            smaller();
        }
        prevWinWidth = winWidth;
    }
});

08-07 04:11