Jquery jqGrid-右键单击jqGrid中的单元格时确定列的名称

Jquery jqGrid-右键单击jqGrid中的单元格时确定列的名称,jquery,jqgrid,Jquery,Jqgrid,所以,当右键单击表中的任何单元格打开上下文菜单时,我必须获取列名。我找到了这个答案,它只适用于列标题 到目前为止我的代码 loadComplete: function () { $('tr.jqgrow').contextMenu('myMenu2', { bindings: { CA: function(trigger) {

所以,当右键单击表中的任何单元格打开上下文菜单时,我必须获取列名。我找到了这个答案,它只适用于列标题

到目前为止我的代码

loadComplete: function () {
                    $('tr.jqgrow').contextMenu('myMenu2', {
                        bindings: {
                            CA: function(trigger) {
                                var cm = $('#' + MY_GRID ).jqGrid("getGridParam", "colModel");
                                //CODE SHOULD BE ADDED HERE -- to get the column name and pass to addToContext();
                                var rowData = jQuery('#' + MY_GRID ).jqGrid ('getRowData', trigger.id);
                                addToContext(rowData);
                            }
                        }
                    });
                },
我也尝试过这个代码,但是我没有定义

var cellName = $(trigger).closest('td').attr('aria-described-by');

您可以使用onContextMenu来确定列名,使用aria descripbedBy属性,如下所示

    ....contextMenu('contextMenu', {
        bindings: {
            'edit': function (t,c) {
                console.log(colname)
                editRow();
            },
            'add': function (t) {
                addRow();
            },
            'del': function (t) {
                delRow();
            }
        },
        onContextMenu: function (event) {
            colname = $(event.target).attr('aria-describedby');
            colname = colname.substr(gridId.length + 1);
            return true;
        }
    });
其中colname是全局定义的,gridId是不带

注意:如果单元格中的内容复杂,则应更换

$(event.target).attr('aria-describedby');


您使用哪个版本的contextMenu?您使用的jqGrid的哪个版本以及jqGrid的哪个分支,商业版或旧版jqGrid可以使用var iCol=$event.target.closesttr.jqgrow>td[0].cellIndex;要获取列和cm[iCol]的索引,name是列名。@Oleg我使用旧的jqGrid和jquery.contextmenu.r2.packed.js,我将检查您的解决方案,谢谢answer@Oleg谢谢,成功了,不客气!您是否全局定义了colname?你应该在问题中使用aria describedby而不是aria described by,这是不正确的抱歉,你的答案也有效,gridId未定义,我应该用我的_GRID@MasterYi谢谢很高兴提供帮助。还有$event.target.closest'td.attr'aria-descripeby';应该用于获取正确的列名,谢谢
$(event.target).closest('td').attr('aria-describedby');