Я закончил с этим решением:
- Найдите в библиотеке jqGrid, где был вызов, который начал сортировку
- Изменить курсор перед этим вызовом
- Установите тайм-аут, чтобы дать браузеру время учесть изменения
- Запустить сортировку
- Восстановить курсор
Это делается в jquery.jqgrid.src.js
(версия 4.15.4) в строке 5729
:
if (iColByName != null) {
// the $("div", this)[0].id looks like "jqgh_" + p.id + "_" + colIndex (like "jqgh_list_invdate")
sortData.call(ts, $("div", this)[0].id.substring(5 + p.id.length + 1), iColByName, r, d, this, e);
}
Я заменил на:
if (iColByName != null) {
// the $("div", this)[0].id looks like "jqgh_" + p.id + "_" + colIndex (like "jqgh_list_invdate")
$("body").addClass('waiting');
setTimeout(() => {
sortData.call(ts, $("div", this)[0].id.substring(5 + p.id.length + 1), iColByName, r, d, this, e);
$("body").removeClass('waiting');
}, 50);
}
Здесь CSS-класс waiting
взят здесь: https://stackoverflow.com/a/25207986/8790102
body.waiting * {
cursor: progress;
}