渲染后的Kendo工具栏事件

时间:2018-10-10 09:39:31

标签: javascript kendo-ui

我有Kendo用户界面Toolbar

$("#toolbar").kendoToolBar({
        items : [ {
            type : "button",
            text : "List"
        } ]
})

,我的应用程序中有一个脚本,该脚本将根据所选语言翻译字符串;也就是说,它将找到单词“列表”并将其更改为“列表”。

问题在于时间安排。工具栏需要花费一定的时间进行渲染,因此在

内调用我的翻译功能
$(document).ready(function() {    })

为时过早。

Kendo工具栏组件没有onRendered事件处理程序。否则我可以使用它。

有什么方法可以定义在所有剑道组件(包括工具栏)渲染后 之后发生的事件?

1 个答案:

答案 0 :(得分:1)

首先:没有更好的方法来本地化页面吗?

此外:我创建了一个小的JavaScript函数,该函数等待直到存在给定的元素列表。只需按$(document).ready(function() { })中的注释中所示对其进行调用即可。

// E.g. waitUntilKendoWidgetsLoaded({ "toolbar": "kendoToolBar" }, doTranslation);
function waitUntilKendoWidgetsLoaded(widgets, action) {
    var allLoaded = true;
    for (var key in widgets) {
        if (widgets.hasOwnProperty(key)) {
            allLoaded = allLoaded && $("#" + key).data(widgets[key]) !== undefined;
        }
    }

    if (allLoaded) {
        action();
    }
    else {
        setTimeout(waitUntilKendoWidgetsLoaded, 500, widgets, action);
    }
}

但是要注意:唯一可以确定的是该元素存在。它不能确保元素已完成加载。特别是对于使用数据源的Kendo小部件,您应该使用现有事件在适当的时候触发您的功能。