我在jqGrid中为其中一列使用了自定义格式化程序。这是格式化程序:
formatter: function(cellvalue, options, rowObject) {
var link = $('<a>', {
text: 'Click Me'
href: '#',
click: function() {
alert('sdfsfsd');
// my stuff
}
});
return link[0].outerHTML;
}
有两个问题:
该链接无法点击。当我点击链接时,该行被选中!有没有办法不绕过行选择,但也可以使链接可点击? [更新:我尝试使用beforeSelectRow:function(row,e){return false;}来禁用选择。但仍然无法点击链接。我可以在html中看到单元格值确实是一个链接。]
链接不像链接,意味着它不是蓝色/下划线,像往常一样。我没有在CSS中覆盖任何内容。
非常感谢!
由于 Vivek Ragunathan
更新:我发现这对网格来说不是问题。但是单击处理程序不会与超链接链接。我也试过这个代码,但没有运气!
var link = $('<a>', {
text: 'Click Me'
href: '#'
}).click(function() {
alert('sdfsfsd');
// my stuff
});
由于
答案 0 :(得分:1)
由于链接是动态创建的(使用jquery),然后消耗该对象的 HTML ,因此处理程序不会成为HTML的一部分。所以在这种情况下,必须直接用字符串创建链接:
formatter: function(cellvalue, options, row) {
var handler = "someHandlerDefined(" + options.rowId + ")";
return "<a href=# onclick='" + handler + "'>Link</a>";
}
那很有用!