如何在jqGrid中为onSelectRow创建一个IE7 / IE6友好的代理?

时间:2011-05-25 18:07:24

标签: javascript jquery datagrid jqgrid internet-explorer-7

我想在onSelectRow调用中实现在FF / Chrome / IE8中运行的功能。我听说过,“onSelectRow有错误;你可以使用gridComplete。”所以我实现了一个jQuery函数来alert()被点击的行的id,它可以在IE8和IE6中工作,但不能在IE7中工作,它不会做任何事情。所以我在gridComplete的顶部添加了一个简单的alert()并且得到了......没有,至少就IE7而言。页面加载时没有报告错误但没有警报框。

是否存在备用IE7友好方法来判断某个复杂的jqGrid何时完成加载?可以调用setTimeout()来继续检查它,然后在它准备就绪时运行XYZ吗?

- 编辑 -

我已将源代码放在了http://pastebin.com/3D2AUjC9的pastebin中。

1 个答案:

答案 0 :(得分:1)

首先,您应该从代码中删除一些语法错误。前例替换

<script src="js/jquery.jBreadCrumb.1.1.js" type="text/javascript"
        language="JavaScript">>

<script src="js/jquery.jBreadCrumb.1.1.js" type="text/javascript">/script>

而不是<script language="JavaScript">,您应该使用<script type="text/javascript">

您应该修复id =“autoDistID”中的重复项。

从以下代码中探测到第一个</li>

<li><span class="contacts"></span><a href="#">Your
approval requests summary</li></a> 5/3/2011</li>

您的文档包含两个 </body>和两个</html>结束标记(请参阅代码的第828,829,880,881行)。

此外,您使用HTML5 DOCTYPE(<!doctype html>),但使用许多绝对属性:请参阅

<table cellpadding="2px" cellspacing="0" border="0">
例如,

。我建议您清除代码并在http://validator.w3.org

中进行验证

现在关于你的jqGrid问题。您在jquery.searchFilter.js之后包含了 jquery.jqGrid.src.js过滤器插件,它会破坏jqGrid的搜索,并且可能会出现更多错误,因为jqGrid 的主要代码已经包含高级搜索的新实现:grid.filter.js模块。

现在我们回到您的主要问题,而不是调用gridCompleteloadComplete。我没有在您的代码loadError中找到,如果您从服务器获取数据,则严格建议使用。我想,你在处理服务器响应时有异常。如果将调用loadError而不是gridCompleteloadComplete

查看the answer,其中详细说明了如何使用loadError