中的Oleg消息
包含jqGrid的可点击复选框格式化程序。
如果使用单击内联编辑(在inSelectRow事件处理程序中启动内联编辑),则单击使用此格式化程序的复选框列会导致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;
},