在客户端控件呈现后触发的JavaScript事件
Trigger JavaScript event that fires after client side control is rendered
大家好,
我有一个网页,用户在一个下拉菜单中进行选择。
一旦选择下拉菜单中的项目,就会出现一个剑道网格,并显示通过返回JSON的API调用检索到的记录列表。
我已经编写了代码,对网格显示时生成的html表进行某些修改,但此代码目前由按钮触发。这不是我想要的行为。
我需要在网格渲染后触发一个事件,以便代码自动执行,而不是由按钮触发。
是否有可能通过JQuery,我可以以某种方式绑定一个事件后触发网格控件已经完成渲染?
注:文档中现有的Kendo网格事件都不能满足我的需要,甚至数据源"requestEnd"也不行,因为在那个时候,页面中还没有生成网格的HTML。如果存在像"postRender"这样的事件,那就再好不过了。
检测'渲染'是困难的。Firefox有一个MozAfterPaint
事件,但它不是标准的,我不知道你如何确保它只为你的特定事件触发。
或者,您可以尝试查看DOM突变事件,但它们也不支持,并且在浏览器UI中DOM更改和网格更新之间仍然可能存在延迟。
你最好的办法是修改网格HTML来输出一些JS,从而触发一个预定义的回调。
当你的javascript在HTML内容被渲染之前运行时,尝试使用setTimeout(function () {}, 0)
"暂停"javascript执行,让渲染线程赶上。你的调用看起来就像这样:
$("#grid").kendoGrid({
dataBound: function(e) {
setTimeout(function () {
console.log("dataBound");
}, 0);
}
});
为什么setTimeout(fn, 0)有时是有用的? 相关文章:
- 如何将javascript事件从web浏览器wpf控件发送到wpf的c#代码
- 在同一个javascript事件处理程序中调用不同的函数
- Javascript事件;在新选项卡中打开”;
- 存在每个时间元素的javascript事件
- Javascript事件.锚的目标问题
- 带有参数的Javascript事件处理程序
- 如何从另一个处理程序内部取消JavaScript事件处理程序函数的执行
- firefox中的Javascript事件范围问题
- Firefox中的JavaScript事件参数
- 在动态加载的PHP表单上放置JavaScript事件
- 如何在Javascript事件上从JSNI设置GWTClass字段
- Javascript事件发射器一次处理多个事件
- 在下拉式javascript事件监听器中选择时触发事件
- 在javascript中导入xlsx文件时,如何手动强制javascript事件
- 显示触发的JavaScript事件
- 正在取消IE11中的JavaScript事件
- 页面卸载期间的JavaScript事件循环
- 存在其他参数时访问Javascript事件
- 阻止Javascript事件影响子元素
- 如何在事件处理程序中获取 javascript 事件对象