在窗口调整大小时触发jQuery函数

时间:2014-03-02 18:01:30

标签: jquery resize window width

我想在浏览器窗口小于/大于960px的宽度时触发一个函数。 我写了一些看起来像这样的代码:

$(window).on('resize', function() {
  if ($(window).width() < 960) {

       dosomething();
    } else {         
       dosomething(); 
}
});

当重新调整窗口宽度函数的大小时,但是它会保持每个像素的重复功能都会发生变化,并且它会提出很多我想要避免的请求。当它超过960px时,有没有任何方法只激活一次功能?(同样,如果屏幕变为960以上并再次降低,则仅再次激活一次功能)

如果您知道答案,请感谢互联网用户!!!


我通过在更改窗口大小时设置超时来找到解决方案:

$(document).ready(function(){
   function resizeStuff() {
     if ($(window).width() < 960)   
 {  
    loadCurrentPage();
} 
else  {
    loadCurrentPage();
}
}
 var TO = false;
 $(window).resize(function(){
 if(TO !== false)
clearTimeout(TO);
 TO = setTimeout(resizeStuff, 200); //200 is time in miliseconds
 });

案件结案。再次,Google中正确的搜索词给出了答案

2 个答案:

答案 0 :(得分:0)

我认为你应该把这个状态保存在一个变量中并用它扩展你的if。

答案 1 :(得分:0)

我会做这样的事情

$(window).on('resize', function() {
    var nextTrigger = 'below';
    if ($(window).width() < 960 && nextTrigger == 'below') {
        nextTrigger = 'above';
        dosomething();
    } else if(nextTrigger == 'above') {
        nextTrigger = 'below';
        dosomething(); 
    }
});