jqGrid-右键单击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){
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的问题。