我正在寫我自己的圖像懶加載函數,當div滾動到其底部,我們加載一些新的圖像,容器div的高度(#ScrollDiv
在這個案件)增加,當我們再次滾動到底部時,我們進行相同的調用。雖然我在每次請求更多圖像(這稱爲appName.featureName.PaginationConstant
和父範圍)中傳遞「分頁ID」,但我想移除或凍結滾動事件,因此我們不會提出其他請求或增加分頁ID。例如:刪除並添加滾動事件處理程序使用jQuery .off或.unbind
appName.featureName.lazyLoader = function() {
var currentScroll = $(this).scrollTop(),
divHeight = $(this)[0].scrollHeight,
actualHeight = $(this).height() + parseInt($(this).css('padding-bottom'))
// have we hit the bottom of the Scroll Div?
if((divHeight - actualHeight) <= currentScroll) {
// yes we have, remove the scroll, see I name this function below
$('#ScrollDiv').off('scroll', appName.featureName.lazyLoader);
// Now get more photos, in the function below I shall re-bind the scroll functionality
appName.featureName.getMorePhotos(++appName.featureName.PaginationConstant);
}
};
// this is the lazyload funtion
appName.featureName.lazyLoad = function() {
$('#ScrollDiv').on('scroll', appName.featureName.lazyLoader);
};
除了解綁,一切都很好用!我仍然能夠觸發滾動事件處理程序,儘管事實上我試圖刪除它,一旦我的條件遇到與$('#ScrollDiv').off('scroll', appName.featureName.lazyLoader);
我做錯了什麼?
你可能會更好地切換一個布爾值,該值指示是否應該運行該函數,而不是不斷地綁定和解除綁定事件處理程序。 「appName.featureName.getMorePhotos」函數的代碼是什麼樣的? – 2014-11-06 14:03:28
我認爲你是正確的布爾比綁定和解除綁定...即使在下面的答案我無法得到的東西工作,當我通過布爾一切正常! – 2014-11-06 14:16:15