2013-04-06 64 views
1

我有一个表使用datatables.net通过ajax加载数据。我想这样做,以便当用户点击一行时,它链接到一个URL,该URL附加了该行主键的get变量。使数据表行可点击

我对Datatables比较陌生,所以我的黑客企图/想法是使用Datatables将两个列与我的主键应用于两列。这两个类是隐藏的(css of display:none)和projectID(标识该列,以便我可以用jquery获取它的值)。我能够使用aoColumns属性应用这些类,并且它隐藏了列并追加了projectID类。不过我想既然数据表是从使用

$('#project-table tr').click(function(){alert('clicked');} 

创建它阻止了我的表,所以我尝试

$('#project-table tr').live('click',function(){alert('clicked');})}; 

也无济于事。

我会想象有一种比我用来制作可点击的行更好的方法,链接到带有附加主键获取变量的页面,但我找不到示例。如果任何人有一个链接到一个例子,或可能指向我在正确的方向,这将不胜感激。

回答

5

我有其使用datatables.net

这意味着,除非该事件是网页加载过程中结合到元件的任何事件处理程序将不会被适用于加载的数据经由AJAX装载有数据的表委托给一个静态父元素 - 意味着该元素永远不会被删除或替换,并将无限期存在。

$(document).on('click', '#project-table tr', function(){ 
    alert('This is a click on a dynamic element'); 
}); 

在这里,我们结合的Click事件到document。如果您愿意,可以选择更接近的元素(以提高性能)。

Here is the link to the documentation for .on()

补充说明 - 在jQuery的1.9 +,一些功能已被删除。其中之一是.live()函数,该函数已被替换为.on()方法(如上所示)。这就是为什么它不起作用。另外,console会告诉你这一点。许多当前的浏览器都带有自己的web inspector,否则您可以在您的浏览器上进行Google搜索并找到其他选择。