2015-11-17 13 views
1

我正在使用「簡單的自定義控件添加無限滾動重複或視圖」可作爲片段上OpenNTF。無限滾動重複或意見不正常

這工作,但不正確,這是發生了什麼:

當你到達屏幕底部的導航控件被觸發和AJAX調用發送。

但是,您仍然處於屏幕的底部,因此再次觸發尋呼機控制併發送第二個ajax呼叫。 (使用firefox或瀏覽器檢查瀏覽器中的XHR請求)。

所以你請求了1個額外的值並得到2返回。

有時第二個Ajax請求比第一個Ajax請求早完成,然後重複控件中的排序就搞亂了。

我首先嚐試在JS調用上設置超時,例如

$(window).scroll(function() { 
    if ($(window).scrollTop() == $(document).height() - $(window).height()) { 

     setTimeout(function() { 
      $(".infiniteScroll ul li a").click(); 
     }, 4000); 
    } 
}); 

但我必須將超時設置爲大量的毫秒,有時4000是不夠的。

我不知道是否有一個選項來鏈接尋呼機控制的ajax調用或暫時禁用觸發器?

+0

不容易。 addRows按鈕使用函數「XSP.appendRows」。該功能可以在擴展庫源代碼的「plugins \ com.ibm.xsp.extlib.controls \ resources \ web \ extlib \ dijit \ DataIterator.js」中找到。一個選項可能是劫持該功能。當你點擊它時,你可能會在節點上添加一個'disabled'屬性,當例如「_parseDojo」或「_count」被調用,然後刪除該屬性(這些屬性在部分刷新之後調用)。然後在.click()函數之前,檢查'disabled'屬性是否存在。不是最優雅的方式... –

回答

0

我發現問題在於觸發無限滾動的方式:到達窗口底部時。

然後,在返回第一個觸發器的結果之前,沒有設置狀態(例如加載),可以觸發第二個或第三個觸發器。