2014-02-14 51 views
1

我的jQuery的這個小片段:停止腳本,如果屏幕尺寸小於

if (jQuery(window).innerWidth() > 568) { 
    jQuery('#boardOfTrustees').masonry({ 
     itemSelector: '.postWrapper', 
    }); 
} 

這工作得很好,但我想從工作停止這個,或者取消初始化它調整大小,如果屏幕小於一定的尺寸。我已經試過這樣:

jQuery(window).smartresize(function() { 
    if (jQuery(window).innerWidth() > 568) { 
     jQuery('#boardOfTrustees').masonry({ 
      itemSelector: '.postWrapper', 
     }); 
    } 
}); 

.smartresize是一個反跳腳本,它工作得很好,但對於這種特殊的情況下,它沒有做任何事情,並砌築腳本仍在初始化。如何讓第一組jQuery停止將自身應用於元素,如果屏幕小於568像素,但如果調整大小大於568時再開始工作?

+0

你不能停下來的東西那已經發生了。你只能撤消它。 –

+0

是否有可能窗口足夠寬,所以調用'masonry'?如果寬度爲<= 568',我認爲你需要顯式撤銷「砌體」的任何操作。 –

回答

2

這將工作在加載。不調整大小:

if (jQuery(window).innerWidth() < 568) { 
    jQuery('#boardOfTrustees').masonry({ 
     itemSelector: '.postWrapper', 
    }); 
} 

,使其處於調整大小的工作,那麼你就需要使用方法destroy詳細的at the documentation.

$(window).resize(function() { 
    if (jQuery(window).innerWidth() < 568) { 
     jQuery('#boardOfTrustees').masonry('destroy'); 
    } else { 
     jQuery('#boardOfTrustees').masonry({ 
      itemSelector: '.postWrapper', 
     }); 
    } 
}); 
+0

我知道,這正是我想要發生的事情,但是如果它小於568,那麼也要注意調整大小並停止工作。 – AndyWarren

+0

@AndyWarren已更新。 – Alvaro

+0

@AndyWarren更新代碼。 – Alvaro

0

摧毀它

else { 
    jQuery('#boardOfTrustees').masonry('destroy') 
}