我有slickgrid设置使用RowSelectionModel
以及包含使用customFormatter进行超链接设置的列(轻微修改以保护无辜者):
function linkFormatter(row, cell, value, columnDef, dataContext) {
return "<a href='#' rel='XYZ'>View</a>";
}
使用以下点击事件处理程序:
$('a[rel=XYZ]').on('click',function (e) {
$(this).replaceWith('some html');
});
上述处理程序永远不会触发网格中的链接。如果我在slickgrid外部创建链接,它可以很好地指示我的选择器和函数是有效的。
如果我将JavaScript函数挂钩到<a>
标记中,它可以正常工作,但我真的宁愿保持我的js不引人注目。有关如何为嵌入在slickgrid单元格中的超链接触发点击处理程序的任何建议?
答案 0 :(得分:0)
我没有使用过slickgrid,但我怀疑你在填充网格之前附加了事件处理程序。您可以加入onGridDataLoaded
或类似事件吗?
示例here使用类似:
的内容loader.onDataLoaded.subscribe(function () {
// rewire handlers
})
答案 1 :(得分:0)
$('PARENT_ELEMENT').on('click','a[rel=XYZ]',function (e) {
$(this).replaceWith('some html');
});
绑定活动时,请确保'PARENT_ELEMENT'
存在。最安全的方法是使用'body'
或document
作为'PARENT_ELEMENT'
。
答案 2 :(得分:0)
如蒂姆所说,你可以使用这样的东西:
$(document).on('click', 'a[rel=XYZ]', function (e) {
$(this).replaceWith('some html');
});