2014-03-02 86 views
0

我想在瀏覽器窗口寬度小於/多於960像素時觸發一個函數。 我已經寫了一些代碼女巫看起來是這樣的:觸發窗口調整大小的jQuery功能

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

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

當重新調整大小窗口寬度功能被激活,但它不斷重複,對每個像素的功能被改變,這讓很多要求巫婆我想的到避免。當它穿過960像素時,只有一次激活功能的方法是什麼?(再次,如果屏幕變爲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 
}); 

結案:


我通過設置超時而改變窗口大小找到了解決辦法。再次,谷歌正確的搜索詞給出了答案

回答

0

我認爲你應該保持在一個變量的狀態,並擴大你的if。

0

我會做這樣的事

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

所以基本上聲明事件處理程序中的變量,然後在下一行檢查變量? nextTrigger如何返回「below」以外的任何內容? – adeneo