2011-10-11 98 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(....) 
    }) 
    }); 
相關問題