2013-02-04 90 views
2

任何想法如何使一個函數被調用一次使用.resize,然後讓它永久取消或禁用?如何在調整大小函數中只調用一次函數?

$(window).resize(function() { 
    if ($(window).width() < 800) { 
     size = true; 
     mob(); 
    } 
}); 

更新:偉大的東西,感謝sdespont - 得到它的開/關工作:

$(window).on('resize',function() { 
      if ($(window).width() < 800){ 
        agent = true; 
        mob(); 
      } 
      }); 

然後關閉調整大小功能,一旦條件滿足:

$(window).off('resize'); 

回答

2

使用one功能http://api.jquery.com/one/

$(window).one('resize',function() { 
    if ($(window).width() < 800){ 
     size = true; 
     mob(); 
    } 
}); 
$(window).trigger('resize'); 

或者on/off功能http://api.jquery.com/on/

$(window).on('resize',function() { 
    if ($(window).width() < 800){ 
     size = true; 
     mob(); 
    } 
}); 

$(window).trigger('resize').off('resize'); 
4

jQuery的.one方法爲:

$(window).one("resize", function() { /* */ }); 
+0

感謝您的答覆。看起來它不適合調整大小,只有在瀏覽器窗口已經小於800的情況下才會觸發功能。 – phlidd

+0

我懷疑這與窗戶的寬度有關。也許是因爲'resize'事件通常會在你調整大小的時候多次觸發,所以它不能使它只觸發一次。相反,我們需要找到一種方法來檢測調整大小「手勢」的結束,或者什麼。 – bfavaretto

相關問題