【问题标题】:jqGrid throws: Uncaught TypeError: Cannot read property 'a' of undefinedjqGrid 抛出:未捕获的类型错误:无法读取未定义的属性“a”
【发布时间】:2012-11-08 20:36:44
【问题描述】:

我在 SO 上发现了其他几个基于 Uncaught TypeError 的问题,但不是这个特定的问题,所以我想我会提出这个问题,以防其他人遇到这个问题。

我的 jqGrid 工作得非常好,但是我一直在控制台中看到这个错误:

Uncaught TypeError: Cannot read property 'a' of undefined jquery.jqGrid.min.js:423

我查了一下,这对应于 jquery.jqGrid.src.js

的第 4364 行

我使用的是 jqGrid-4.4.0

版本

网格一加载,但在网格中填充数据之前,我就会收到错误消息。

我很担心,即使它有效,因为我的大多数用户都使用 IE6,而 IE 有时甚至会遇到最愚蠢的 javascript 错误。 对此问题的任何形式的帮助将不胜感激。

PS:在阅读了对之前类似问题的回复后,我想我会添加一些内容。

【问题讨论】:

  • 如果您使用 jquery.jqGrid.src.js 而不是 jquery.jqGrid.min.js 以及在哪个版本(4.4.1 或 4.4.0)中,究竟是哪个错误?当您收到错误消息时:在第一次填充网格时关于服务器响应?
  • jquery.jqGrid.src.js 中的第 4364 行。我在 4.4.0 版上。加载网格后,即在填充网格之前,我会立即收到错误消息。

标签: jquery json jqgrid


【解决方案1】:

很奇怪!

jQuery 4.4.0 的 jquery.jqGrid.src.js 的第 4364 行位于 jqGrid 的 jqModal 模块中,这几乎不是必需的。该模块通常不应在加载网格期间使用。在许多情况下,通过将jqModal 参数设置为 false 可以不使用它。

我想你与你使用的其他 JavaScript 插件有一些兼容性问题。

您可以在代码开头的某处将$.fn.jqm 设置为undefined 或null。例如,您可以在加载 jquery.jqGrid.src.js 或 jquery.jqGrid.min.js 后直接执行此操作。结果模块jqModal 将不会被使用。

【讨论】:

  • 啊哈!就是这样!谢谢奥列格!我想起来了。我已经尝试了一切,我的模式搜索框总是在页面加载时加载。所以为了强制它关闭,我打电话给$(".ui-icon-closethick").trigger('click'); 这有效,但它在控制台中触发了该错误。这解决了我的这个问题。但我仍然需要一种干净的方式来在页面加载时不弹出我的模态搜索框。
  • @keithxm23:不客气!我认为错误是在jqmHide 内部产生的。从您的解释中我并没有真正理解为什么在加载网格时应该看到搜索框。可能你想实现一些东西,但实现得并不完全正确。我想同样的问题可以用另一种方式来解决。为什么会显示搜索框?
  • @keithxm23:顺便说一句,您可以使用搜索框的jqModal: false 选项。您可以针对$.extend($.jgrid.search, {jqModal: false}); 全局设置设置
  • @Oleg:我刚刚遇到了与 4.5.4 版和网格寻呼机类似的问题。它抱怨 this.p 在尝试访问 this.p.id 时未定义(也与 jqModal 有关)。解决方案是将寻呼机链接到网格构造函数。
  • @syslogic:你能提供演示问题的演示吗?
猜你喜欢
  • 1970-01-01
  • 2021-12-22
  • 2015-01-06
  • 2019-02-07
  • 2019-10-14
  • 2019-11-10
  • 2017-07-26
  • 2019-02-26
相关资源
最近更新 更多