Прежде всего имя библиотеки JavaScript, которую вы пытаетесь использовать: jqGrid .Повсюду в документации или на главной стороне вы найдете одно и то же имя, написанное точно в той же форме.
К вашему основному вопросу.Кажется, вы можете просто использовать onCellSelect
callback, чтобы поймать событие click на изображении, или просто щелкнуть мышью по какой-либо ячейке.Параметр e
обратного вызова onCellSelect
является объектом события , а e.target
будет элементом, по которому был выполнен щелчок.
Демонстрация показываетВы можете использовать его.
Я использовал в качестве исходного фонового изображения jQuery UI для блокировки.
formatter: function () {
return "<a href='#'><span class='ui-icon ui-icon-locked'></span></a>"
}
Нажатие на изображение изменило изображениеизменив класс элемента <span>
с "ui-icon-locked"
на "ui-icon-unlocked"
:
onCellSelect: function (rowid, iCol, cellcontent, e) {
var $dest = $(e.target), $td = $dest.closest('td');
if ($td.hasClass("clickableTitle")) {
if ($dest.hasClass("ui-icon-locked")) {
$dest.removeClass("ui-icon-locked").addClass("ui-icon-unlocked");
} else {
$dest.removeClass("ui-icon-unlocked").addClass("ui-icon-locked");
}
}
}
Вы можете легко изменить код, если предпочитаете <img>
вместо фонового изображения в <span>
.