2011-10-11 24 views
1

我有一张我使用数据表显示的表。表格中的一列是复选框。检查(或取消选中)复选框会导致Ajax事件。像这样:如何在使用“datatables”搜索后重新绑定click()事件

<script type="text/javascript"> 
    $(document).ready(function() { 
    $(".data-table").dataTable({}); 
    $(".my-checkbox").click(function() { 
     $.ajax(....) 
    }) 
    }) 
</script> 

<table class="data-table"> 
    <tr> 
    <td><input type="checkbox" class="my-checkbox"></td> 
    </tr> 

    <!-- repeat many times --> 
</table> 

这在初始页面加载的伟大工程,但只要我使用了“搜索”框中的变化()方法是通过搜索发现任何绑定。

是否有API钩子,我可以用来重新绑定我的click()处理程序到复选框,一旦搜索完成?或者,还有更好的方法?

+0

你错过了一些代码吗?我没有看到你在任何地方绑定'change'事件。 – namuol

回答

3

。点击是.bind一条捷径,只有在页面元素绑定。你必须使用.live:

$('.my-checkbox').live('click', handler); 

另一种选择是使用委托:

$('.data-table').delegate('.my-checkbox', 'click', handler); 

更新:如jQuery的1.7+,双方.live.delegate已过时,并且与.on取代:

$('.my-checkbox').on('click', handler); 
0

是的,你可以手动重新绑定,或使用.live()

$(document).ready(function() { 
    $(".data-table").dataTable({}); 
    $(".my-checkbox").live('click', function() { 
     $.ajax(....) 
    }) 
    }); 
相关问题