javascript - setTimeout 的替代方案?

标签 javascript jquery settimeout sapui5

我有一个 sapui5 表,我在表滚动条上调用了一个滚动函数。它仅在我使用 setTimeout 时有效。我假设这是因为表中的数据在实际表加载之后略有加载。

这是我的代码:

setTimeout(function () {
    var lastScroll = 0;
    $("#__xmlview0--players-vsb-sb").scroll(function () {
        var st = $(this).scrollTop();
        if (st > lastScroll) {
            console.log("scrolling down");
        } else {
           console.log("scrolling up");
        }
        lastScroll = st;
    });
}, 900);

我尝试使用 onAfterRendering 函数作为替代方法,但我无法让它工作。有谁知道 setTimeout 的替代方法?

这是我的 JSBin .

最佳答案

如果这是一个 sap.m.Table,您可以使用 sap.m.ListBase 中的 updateFinished 事件,请参阅:
OpenUI5 SDK - Demo Kit v2.0

updateFinished(oControlEvent)
This event is called after items binding and afterwards related DOM is updated.
Parameters:
{sap.ui.base.Event} oControlEvent
{sap.ui.base.EventProvider} oControlEvent.getSource
{object}    oControlEvent.getParameters
{string}    oControlEvent.getParameters.reason  The reason of update. Possible values are "Binding", "Filter", "Sort", "Growing", "Change", "Refresh", "Context"
{int}   oControlEvent.getParameters.actual  Actual number of items.
{int}   oControlEvent.getParameters.total   The total count of bound items. This parameter can be used if "growing" feature is enabled.
Since:
1.16.3

关于javascript - setTimeout 的替代方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31747879/

相关文章:

javascript - 使用 setTimeout react 嵌套 map 顺序渲染

javascript - 使用变量时不执行 setTimeout() 方法

javascript - 检查多点图层是否包含在 Openlayers 中的多边形中

javascript - React Draft-js block 插入

javascript - Highcharts Arareange 超过一定长度没有缩放动画

jquery - 如何将 forEach 转换为 For 循环

javascript - 停止同一按钮上的一个点击事件

javascript - 在 jquery 中的最后一个图像上停止图像 slider 前进按钮

javascript - 如何获取表单内输入的值?

javascript - React Native 中 setTimeout 的准确性