奥列格消息
包含 jqGrid 的可点击复选框格式化程序。
如果使用单击内联编辑(内联编辑在 beforeSelectRow 事件处理程序中启动),单击使用此格式化程序的复选框列会导致 javascript 异常:
c 未定义
在 jqGrid getCellIndex 方法中:
$(cell) 值是这个格式化程序 div 并且 c 变得未定义。
如何解决这个问题?
更新
同样的异常也发生在 chrome 中。也许 div 被创建为 body 元素的直接子元素。在这种情况下,我修补了 jqGrid 以返回 -1:
getCellIndex : function (cell) {
var c = $(cell);
if (c.is('tr')) { return -1; }
c = (!c.is('td') && !c.is('th') ? c.closest("td,th") : c)[0];
// AM next line added if removed single click editing in checkbox column click causes error
if (c== undefined ) { return -1; }
if ($.browser.msie) { return $.inArray(c, c.parentNode.cells); }
return c.cellIndex;
},