我正在使用jqGrid并且有3列无法排序。此时,当用户将鼠标悬停在标题上时,无论排序设置为true还是false,光标都会变为手形。我希望那个光标不是那些列头上的手(文本或指针)。用这种方式让用户感到困惑。这是可以设置的吗?
谢谢, 标记
答案 0 :(得分:17)
我发现问题非常好。所以来自我的+1。
您不是第一个希望在不可排序的列上使用另一个游标的人(而不是最后一个)。遗憾的是,jqGrid不会为您提供类或其他一些简单的属性,可用于查找可以设置CSS“cursor:default”的元素。
所以我建议使用以下代码执行此操作:
var myGrid = $("#list");
// create the grid
myGrid.jqGrid({
// all jqGrid parameters
});
// fix cursor on non-sortable columns
var cm = myGrid[0].p.colModel;
$.each(myGrid[0].grid.headers, function(index, value) {
var cmi = cm[index], colName = cmi.name;
if(!cmi.sortable && colName!=='rn' && colName!=='cb' && colName!=='subgrid') {
$('div.ui-jqgrid-sortable',value.el).css({cursor:"default"});
}
});
您可以在the demo直播上看到该方法有效。在演示中,最后一列“Notes”是不可排序的。
如果这种行为在jqGrid的下一个版本中是标准的,那将是很好的。我将尝试找时间并写出建议,应该更改jqGrid代码中的内容,使其成为开箱即用的行为。
更新:free jqGrid 4.8中不存在光标在不可排序列上的问题。
答案 1 :(得分:1)
欢迎来到SO。
绝对。 CSS:
th.unsortableclass {
cursor: default;
}
现在将该类应用于不可排序的列标题。
答案 2 :(得分:1)
奥列格的例子运作得很好但我有一个请求,如果列是可排序的,总是显示箭头。我知道我在评论,但认为有些人可能会有同样的要求。
所以我把它添加到他的循环中:
jQuery('span.s-ico',value.el).remove();
然后他的代码运行:
jQuery(".s-ico").show();
然后将其添加到我的网格创建:
onSortCol:function(index, iCol, sortorder){
// redisplay all arrows
jQuery(".s-ico").show();
}
答案 3 :(得分:-1)
$("jquery selector to pick only non-sorted columns").css("cursor", "default");