我們有一個運行jQuery Infinite Scroll Plugin的網站。該插件不再被維護,但它是唯一一個真正爲我們的目的正確服務的人。但是,我的問題是,我們的網站是基於Ajax的。在頁面更改時,觸發器會觸發窗口,從而允許我們檢查無限滾動容器是否存在並啓用無限滾動。如果無限滾動容器不存在,但存在$.infscr
,我們將嘗試銷燬先前的實例。在AJAX頁面上銷燬InfiniteScroll
我遇到的問題是,當更改爲另一個頁面時,它似乎不會被正確銷燬,有時會進行AJAX調用以及infscr加載欄顯示。下面是我使用的實例並銷燬插件代碼:
$(window).on('pg-changed', function() {
// delete our infinite scroll
if(typeof $.infscr !== 'undefined') {
$('.snap-inner, .infscr').data('infinitescroll', null);
$('.snap-inner, .infscr').infinitescroll('unbind');
$('.snap-inner, .infscr').infinitescroll('destroy');
$('#infscr-loading').remove();
$.infscr.data('infinitescroll', null);
$.infscr.infinitescroll('unbind');
$.infscr.infinitescroll('destroy');
delete $.infscr;
}
// setup our infinite scroll
if($('.infscr').length) {
$.infscr = $('.infscr').infinitescroll({
// define our navigation selectors
navSelector : 'div.infscr-navigation',
nextSelector : 'div.infscr-navigation A:first',
itemSelector : '.infscr-item',
// allow scrolling an overflowed element
behavior : 'local',
bufferPx : 120,
binder : $('.snap-inner'),
dataType : 'html',
loading : {
msg : null,
selector : '.snap-content',
img : 'data:image/gif;base64,TRIMMED',
msgText : '<span class="infscr-loading">Loading...</span>',
}
}, function (arrayOfNewElems) {
// render background images on our new elements
$(this).renderBgImages();
});
}
});
我真的希望你能幫助您,因爲它已經成爲不少問題,現在,射擊滾動,使得AJAX調用和顯示加載條。
它是否曾經進入if(typeof $ .infscr!=='undefin ed')條件? – phenxd
@phenxd感謝您的信息 - 是的,它確實符合我通過輸出到控制檯進行測試的條件,並且在更改頁面時它確實嘗試並銷燬它不起作用。 – Chris