jquery 根据排序与否更改光标样式

eivnm1vs  于 2023-06-22  发布在  jQuery
关注(0)|答案(4)|浏览(141)

我使用jqGrid,有3列不能排序。此时,当用户将鼠标悬停在标头上时,无论排序设置为true还是false,光标都将变为手形。我希望光标是那些列标题上的手(文本或指针)以外的东西。这样会让用户感到困惑。这是可以设置的吗?
谢谢,马克

lzfw57am

lzfw57am1#

我觉得这个问题很好。+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"});
    }
});

如果这样的行为在jqGrid的下一个版本中成为标准,那就太好了。我会尽量找时间写一些建议,从jqGrid的代码应该改变什么,使行为开箱即用。

已更新:游标在不可排序列上的问题在free jqGrid 4.8中不存在。

rlcwz9us

rlcwz9us2#

欢迎来到SO。
绝对的。CSS:

th.unsortableclass {
cursor: default;
}

现在将这个类应用于不可排序的列标题。

cygmwpex

cygmwpex3#

Oleg的例子很好,但是我有一个请求,如果列是可排序的,总是显示箭头。我知道我在评论,但我想有人可能有同样的要求。
所以我在他的循环中添加了这个:
jQuery('span.s-ico',value.el).remove();
然后在他的代码运行之后:
jQuery(".s-ico").show();
然后将此添加到我的网格创建中:

onSortCol:function(index, iCol, sortorder){
    // redisplay all arrows
    jQuery(".s-ico").show();
}
w1jd8yoj

w1jd8yoj4#

$("jquery selector to pick only non-sorted columns").css("cursor", "default");

相关问题