客户端控制后触发触发JavaScript事件被渲染

问题描述:

好日子,客户端控制后触发触发JavaScript事件被渲染

我有一个网页,其中用户在下拉选择。

只要下拉菜单中的项目被选中,就会出现Kendo网格,并显示通过返回JSON的API调用检索到的记录列表。

我已经写代码,做某些修改,当网格显示,但是这个代码是由目前的按钮触发生成HTML表。这不是我想要的行为。

我需要以某种方式在网格呈现后触发事件,以便代码自动执行并且不会被按钮触发。

是否有可能通过JQuery我可以以某种方式绑定事件以在网格控件完成呈现后触发?

P.S.文档中现有的Kendo网格事件都不能满足我需要,甚至不需要数据源“requestEnd”,因为那时候,网格的HTML还没有在页面中生成。像“postRender”或类似的事件会是理想的,如果它存在。

+0

对不起你挑战,但什么是你需要做的HTML的HTML转型?也许有不同的方式,你可以直接渲染_correct_ HTML而不需要后期干预? – OnaBai 2013-04-04 11:58:32

检测'渲染'很难。 Firefox有一个MozAfterPaint事件,但它不是标准的,我不知道你将如何确保它只能解雇你的特定事件。

或者你可以尝试寻找DOM突变事件,但他们不能很好地支持或者,有可能还是DOM变化和电网在浏览器UI更新之间的延迟。

最好的办法是修改网格HTML以输出一些触发预定义回调的JS。

当你的JavaScript运行之前HTML内容呈现蜜蜂,请尝试使用setTimeout(function() {}, 0)为“暂停”的JavaScript执行,让渲染线程赶上。所以,你的电话几乎是这样的:

$("#grid").kendoGrid({ 
    dataBound: function(e) { 
     setTimeout(function() { 
      console.log("dataBound"); 
     }, 0); 
    } 
}); 

了解更多关于:Why is setTimeout(fn, 0) sometimes useful?