如何在文档准备好上执行部分代码?

时间:2016-07-22 14:13:13

标签: jquery kendo-ui

我的.ts(.js)文件中有一个点击事件。当用户点击我正在进行ajax调用以获取数据。成功之后,我将绑定此数据以创建动态kendo网格(网格数量因数据而异。)

执行事件后,我想执行一些代码。但是在执行此代码时,特定网格不可用。如何等待网格可用然后执行此代码?在同一个点击事件中准备好的jquery文档无效。

$(chkBox).click(() => {
            var chk = $(event.target);
            var val = chk.val();
            if (chk.prop("checked")) {
                // code removed for bravity                                    
                proxyEle.getData(myObject).done(result => {
                // this div has partial view which binds data from result.
                    $(divGrids).html(<string>result); // this part creates kendo grids dynamcially based on data.

                    // here I want to execute my code on the grid elements 
                    //but this code is executing before grid creation is complete. 
                    //So my code is not working. Why here? My grid ids are 
                    // like "SomeConstName"+chk.val(); this val() I only get here.

                }).fail(error => {
                    // handle error
                });
                }
                }

为什么在那里执行我的代码?因为我使用网格ID为“ConstGridName”+ chk.value();

我在上面的代码中得到的这个Id值。这就是为什么我想在那里执行我的代码。如何延迟我的代码执行,直到所有网格都准备好了?

1 个答案:

答案 0 :(得分:0)

知道网格何时完成(和绑定)的唯一方法是订阅DataBound事件(当网格填充数据时触发)

.Events(ev => ev.DataBound("onGridDataBound"))

在那里你可以运行你的代码。