5
當用戶點擊列標題進行排序時,我想激發自己的事件。我不想讓它排序。我一直在做研究,並沒有看到一個好的方法來做到這一點。想要在嘗試排序數據表時觸發自定義事件
我可以綁定排序事件做我自己的東西,但排序仍然發生。我不想要這個。如果我禁用排序,那麼排序事件永遠不會觸發,所以這也不起作用。
我可以禁用排序,然後嘗試捕獲標題上的點擊事件,但我希望有一個更好的方法來做到這一點。有人有主意嗎?
當用戶點擊列標題進行排序時,我想激發自己的事件。我不想讓它排序。我一直在做研究,並沒有看到一個好的方法來做到這一點。想要在嘗試排序數據表時觸發自定義事件
我可以綁定排序事件做我自己的東西,但排序仍然發生。我不想要這個。如果我禁用排序,那麼排序事件永遠不會觸發,所以這也不起作用。
我可以禁用排序,然後嘗試捕獲標題上的點擊事件,但我希望有一個更好的方法來做到這一點。有人有主意嗎?
很簡單。您只需取消綁定click.DT處理程序並添加自己的。你不必禁用排序。
例如
<table id="example">
<thead>
<th id="id">ID</th>
<th id="username">Username</th>
</thead>
<tbody>
<tr><td>1</td><td>A test</td></tr>
<tr><td>2</td><td>B test</td></tr>
</tbody>
</table>
的JavaScript
$(document).ready(function(){
//init datatables
var table = $('#example').dataTable();
//unbind sort event, prevent sorting when header is clicked
$('#example th').unbind('click.DT');
//create your own click handler for the header
$('#example th').click(function(e) {
alert('Header '+$(this).attr('id')+' clicked');
//here you can trigger a custom event
});
//if you afterwards want to restablish sorting triggered by a click event
//here header "username" from example above
table.fnSortListener(document.getElementById('username'), 1);
});
注意:沒有專門的 「排序」 -event在數據表。艾倫賈丁提到它可能會在未來的版本2. http://datatables.net/forums/discussion/5141/capturing-sort-event-on-table-heading/p1
解除綁定不起作用。它仍在排序。 – user1652427
嗯。你使用哪個版本的數據表?在這裏工作,1.9.xx – davidkonrad
有趣,必須是特定版本。使用'.unbind('...')'對我很好。但是,使用'fnSortListener(...'不會重排到列的排序。 –