javascript函数在ie9中没有按顺序调用

javascript function is not called in order in Internet explorer 9

本文关键字:顺序调用 函数 ie9 javascript      更新时间:2023-09-26

我在jqgrid中调用两个函数:

var AdGrid = ConstructJQgrid(gridId, GridModel, true, gridComplete);
$(AdGrid).jqGrid("getGridParam", "colModel");

Chrome测试:

从上面的javascript代码中,第一个方法ContructJQgrid被调用,并将通过调用controller返回结果,结果将存储在变量AdGrid中。

通过使用AdGrid的值,我调用jqGrid方法,它返回网格。

这是实际的工作场景,并与Google chrome浏览器工作良好。

在Internet Explorer (Version:9.0)中测试:

在这种情况下,首先它调用ContructJQgrid,而不调用controller,它正在执行jqgrid方法,因此我的网格没有得到构建,导致错误。

注意:我的controller正在调用,但不是在IE9所需的时间。

如何在Internet Explorer(Version:9.0)中工作?

这是因为JavaScript的异步行为。即使第一个函数还没有执行完,第二个函数也会被调用。我建议您在函数var AdGrid = ConstructJQgrid(gridId, GridModel, true, gridComplete);的定义末尾添加第二行$(AdGrid).jqGrid("getGridParam", "colModel");

还有另一种方法,使用回调函数的概念'

var AdGrid = ConstructJQgrid(gridId, GridModel, true, gridComplete,
        function () {
            $(AdGrid).jqGrid("getGridParam", "colModel");
        });

"