Я не совсем понимаю ваши требования.Какие дополнительные действия вы хотите выполнить при нажатии на «редактируемую» или «нередактируемую» ячейку?
Тем не менее, я бы порекомендовал вам использовать onCellSelect обработчик обратного вызова вместо привязки click
событие для каждой ячейки сетки.Для понимания каждой привязки требуются некоторые ресурсы веб-браузера.Вместо привязки событий к ячейкам вы можете выполнить только one привязку к любому родительскому элементу ячейки, например <table>
(сама сетка).Из-за механизма, известного как поток событий , распространение события или всплывающее сообщение необработанные события будут обрабатываться тем же обработчиком событий родительского элемента илиродитель родителя и тд.Обработчик события получает Объект события , свойство target которого помогает определить, какой элемент был первоначально нажат.
Таким образом, вы можете использовать код типа
onCellSelect: function (rowid, iCol, cellcontent, e) {
var colModel = $(this).jqGrid('getGridParam', 'colModel');
if ($.isArray(colModel) && !colModel[iCol].editable) {
// non-editable cell is clicked
}
}
или
onCellSelect: function (rowid, iCol, cellcontent, e) {
if (!this.p.colModel[iCol].editable) {
// non-editable cell is clicked
}
}
, чтобы определить, была ли ячейка, выбранная в данный момент, недоступна для редактирования.