当JqGrid中的行处于内联编辑模式时,使用jquery选择器访问最后一个单元格(最后一行和最后一列)
想要在jqGrid中最后一个单元格的tab键上添加keydown事件以添加新行。 当行处于内联模式时,请帮助我将keydown事件仅附加到网格的最后一个单元格。 这是获取最后一行的选择器当JqGrid中的行处于内联编辑模式时,使用jquery选择器访问最后一个单元格(最后一行和最后一列),jqgrid,Jqgrid,想要在jqGrid中最后一个单元格的tab键上添加keydown事件以添加新行。 当行处于内联模式时,请帮助我将keydown事件仅附加到网格的最后一个单元格。 这是获取最后一行的选择器 var lastRow = $('#grid>tbody>tr.jqgrow:last'); 如何指定最后一行的最后一列选择器 请建议是否可以像这样动态绑定事件 在哪个位置放置此绑定事件代码更好,如在loadComplete中 在loadcomplete上,您获得最后一行,然后在最后一列中添加一个
var lastRow = $('#grid>tbody>tr.jqgrow:last');
在
loadcomplete
上,您获得最后一行,然后在最后一列中添加一个类。然后,您可以只向其中添加一个jQuery事件处理程序,以侦听tab键以触发addnewrecord函数
大致概述您将如何做到这一点:
获取行的Id:
var rowIds = $(grid).jqGrid('getDataIDs').length;
如果知道最后一个列名,则可以使用它,如果不知道,则可以获得colNames
数组的长度
var lastCol = $(grid).jqGrid('getGridParam', 'colNames').length;
然后通过以下方式将类设置为最后一行的最后一列:
$(grid).jqGrid('setCell', rowIds, lastCol, "", 'TabTriggerClass');
从这里开始,您应该在最后一行的最后一列上有一个类,您只需绑定一个事件处理程序,然后再绑定add函数,等等。这就是我如何使用您的解决方案
var bindEventToLastCell = function(){
jQuery(".TabTriggerClass").on('keydown', function(e){
if (e.which == 9 && jQuery(e.currentTarget).hasClass('TabTriggerClass')) {
$(this).removeClass('TabTriggerClass');
$(this).off(e);
//Performing other actions
}
});
};
var addTabTriggerClassToLastCell = function(grid) {
var lastRowId = jQuery('#' + jQuery(grid).attr('id') + '>tbody>tr.jqgrow:last').attr('id');
var lastCol = getLastEditableColumnIndex(grid);
grid.setCell(lastRowId, lastCol, "", 'TabTriggerClass');
};
谢谢马克提供了一个很好的解决方案。我的答案超出了你的建议,如何把它写下来?我是一个新的问题,张贴到StackOverflow你不能,如果你使用我的答案标记为正确的(并可能向上投票)。答案按Active/sorted/VotesI排序我试图为您的答案投票,但在投票选项卡中未找到任何内容(问题/答案)。如何投票?在左手边,你应该在这个答案上打一个复选标记,标记为正确。向上和向下的箭头表示您的投票方式,但您需要一定的代表级别才能这样做。