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

jqGrid-右键单击jqGrid中的列时确定列的名称,jqgrid,Jqgrid,在jqGrid中右键单击列标题时需要列的名称。欢迎使用任何代码。您可以将contextmenu事件绑定到所有列标题。每个头都是元素,因此它的DOM支持属性。该属性提供列标题的索引。如果在colModel中使用相同的索引,则将获得列的定义。name属性提供列名 相应的代码可能与以下内容有关: var cm=$grid.jqGrid(“getGridParam”、“colModel”); $($th.ui第列,$grid[0].grid.hDiv.bind('contextmenu',函数(e){

在jqGrid中右键单击列标题时需要列的名称。欢迎使用任何代码。

您可以将
contextmenu
事件绑定到所有列标题。每个头都是
元素,因此它的DOM支持属性。该属性提供列标题的索引。如果在
colModel
中使用相同的索引,则将获得列的定义。
name
属性提供列名

相应的代码可能与以下内容有关:

var cm=$grid.jqGrid(“getGridParam”、“colModel”); $($th.ui第列,$grid[0].grid.hDiv.bind('contextmenu',函数(e){ var$th=$(e.currentTarget); 如果($th.length>0){ 警报(“列的标题“”+cm[$th[0].cellIndex].name+ “‘被点击’”; e、 preventDefault();//不显示标准上下文菜单 } }); 使用代码。只需使用鼠标右键单击列标题,即可看到结果:


所有jqGrid单元格都有一个由
属性描述的
aria,该属性由
gridId\u columnname
组成。您可以使用它来获取列名

对于网格单元

var cellName = $(e.target).closest('td').attr('aria-described-by');
var gridId = 'list1';

var columnName = cellName.substr(gridId.length - 1);
对于列标题,除了Oleg的答案之外,您还可以这样做

var header = $(e.target).closest('th')
var gridId = 'list1';

var columnName = header.attr('id').substr(gridId.length - 1);

在jqGrid中右键单击列标题时,
元素将作为
e.target
e.currentTarget
而不是
元素。
元素具有
id
,其构建方式与
@Oleg:Agreed的
'aria-description-by'
相同。我提出了一个在专栏中点击任意位置的解决方案。标题或列单元格。我看到了,但问题是“右键单击列标题时我想要列的名称”,如果右键单击列标题,则将找不到最近的('td')
。您可以将
.nestest('td')
更改为
.nestest('td,th')
以获得通用解决方案,但是您应该考虑到
元素没有
'aria-description-by'
属性,但是您可以从
'id'
@Oleg获得相同的信息:您是对的。我已相应地更新了我的答案。谢谢,非常感谢!!我还有几个关于jqGrid的问题。