在Internet explorer 9中未按顺序调用javascript函数
我在jqgrid中调用两个函数:在Internet explorer 9中未按顺序调用javascript函数,javascript,jquery,jqgrid,internet-explorer-9,Javascript,Jquery,Jqgrid,Internet Explorer 9,我在jqgrid中调用两个函数: var AdGrid = ConstructJQgrid(gridId, GridModel, true, gridComplete); $(AdGrid).jqGrid("getGridParam", "colModel"); 铬合金测试: 从上面的javascript代码中,调用第一个方法constructJQGrid,并通过调用controller返回结果,结果将存储在变量AdGrid中 通过使用AdGrid的值,我调用jqGrid方法,它返回网格 这
var AdGrid = ConstructJQgrid(gridId, GridModel, true, gridComplete);
$(AdGrid).jqGrid("getGridParam", "colModel");
铬合金测试:
从上面的javascript代码中,调用第一个方法constructJQGrid,并通过调用controller返回结果,结果将存储在变量AdGrid中
通过使用AdGrid的值,我调用jqGrid方法,它返回网格
这是实际的工作场景,适用于谷歌浏览器
在Internet Explorer版本9.0中测试:
在这种情况下,首先它调用constructJQGrid,而没有调用controllerit,它正在执行jqgrid方法,因此我的网格没有被构造,结果是错误的
注意:我的控制器正在呼叫,但不是在IE9中要求的时间
如何在InternetExplorerVersion:9.0中使用此场景?这是因为JavaScript的异步行为。即使第一个函数尚未完成执行,也会调用第二个函数。我建议您添加第二行$AdGrid.jqGridgetGridParam,colModel;在函数var AdGrid=constructjqgridid,GridModel,true,gridComplete;定义的末尾 还有另一种方法,使用回调函数的概念 `
`您的控制器代码在做什么?加载DOM后是否执行代码?您应该包括ConstructionJQGrid的代码。您应该始终编写您使用的jqGrid版本。相反,您只包含了两行代码。第二行$AdGrid.jqGridgetGridParam,colModel返回colModel,它在没有赋值的情况下的用法没有意义。所以你应该发布更多的代码,更清楚地描述你所做的事情。也许你应该在loadComplete回调中移动一些代码。谢谢。我将尝试上述解决方案
var AdGrid = ConstructJQgrid(gridId, GridModel, true, gridComplete,
function () {
$(AdGrid).jqGrid("getGridParam", "colModel");
});