0

我为 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
});

谢谢

4

1 回答 1

1

由于链接是动态创建的(使用 jquery),然后使用该对象的 HTML,因此处理程序不会成为 HTML 的一部分。所以在这种情况下,必须直接用字符串创建链接:

formatter: function(cellvalue, options, row) {
    var handler = "someHandlerDefined(" + options.rowId + ")";
    return "<a href=# onclick='" + handler + "'>Link</a>";
}

那行得通!

于 2013-10-18T09:09:22.977 回答