1

我使用Timeago for Xpages无限滚动自定义控件。如果我使用其中的一个,那很好。但如果两者都用就不好了。timeago 仅适用于repeatlimit 中的条目。如果我向下滚动另一个没有 Timeago 日期。由 dojo.addOnLoad 函数调用的 Timeago。第一次还好。我必须使用什么事件或功能?

4

1 回答 1

2

您可以在单击无限滚动按钮时使用该脚本来为 Timeago 自定义控件添加脚本。

我在无限滚动脚本中添加了 Timeago 脚本,并且在 500 毫秒(直到服务器响应并获取更多行的时间)之后,它将重新解析所有 timeago 类。

    <xp:scriptBlock id="scriptBlock1">
    <xp:this.value><![CDATA[$(window).scroll(function(){
    if($(window).scrollTop() == $(document).height() - $(window).height()) {
       $(".infiniteScroll ul li a").click();
    setTimeout(function(){ 
        dojo.query(".timeago").forEach( function(el) {
          var timeagoWidget= dijit.getEnclosingWidget(el);
          if(!timeagoWidget){
            timeagoWidget = new timeago.Timeago({}, el);
          }

          //refresh timeago
          timeagoWidget.refresh();
        });
    },500);
    }
});]]></xp:this.value>
  </xp:scriptBlock>

另一种选择是劫持部分刷新并始终重新渲染 timeago 脚本。此处解释了如何劫持它。

于 2015-05-26T18:59:42.587 回答