我有Kendo用户界面Toolbar:
$("#toolbar").kendoToolBar({
items : [ {
type : "button",
text : "List"
} ]
})
,我的应用程序中有一个脚本,该脚本将根据所选语言翻译字符串;也就是说,它将找到单词“列表”并将其更改为“列表”。
问题在于时间安排。工具栏需要花费一定的时间进行渲染,因此在
内调用我的翻译功能$(document).ready(function() { })
为时过早。
Kendo工具栏组件没有onRendered
事件处理程序。否则我可以使用它。
有什么方法可以定义在所有剑道组件(包括工具栏)渲染后 之后发生的事件?
答案 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小部件,您应该使用现有事件在适当的时候触发您的功能。