簡體   English   中英

比“像行為一樣回調”更好的解決方案

[英]Better solution than 'callback like behaviour'

我使用jquery picnet表濾波器- http://www.picnet.com.au/picnet-table-filter.html

我需要顯示當前可見的行數,因此我需要對每個過濾事件做出反應。

有兩個應該用作回調的選項-filteringRows和filteredRows。

但是,我嘗試了兩個,但都沒有解決。 我只在某些時候觸發了回調函數。 終於我有了一個可行的解決方案-

$('#myTable .filters').change(function(){ setTimeout( 'load_num_rows()', 500 ) })
                               .keyup(function(){ setTimeout( 'load_num_rows()', 500 ) });

讓我困擾的是,這種解決方案顯然不是回調。 這需要等待500毫秒才能完成過濾,但是如果行很多並且過濾需要500毫秒多一點,那么我將無法獲得正確的結果。

我試過的是

$('#tb_list_reports').tableFilter({filteredRows: function(){ 'load_num_rows()' }});

$('#tb_list_reports').tableFilter({filteredRows: function(){setTimeout( 'load_num_rows()', 500 )}});

與選項filterRows相同。 它們都不起作用,行數未更新。 我嘗試過console.log(),當我過濾行時似乎也沒有觸發它們,而且當我設置了這些選項時,我得到一些奇怪的行為-有時我重新加載頁面,沒有過濾設置,但是我在第三次重新加載之前,不會顯示任何內容。

您對我應該嘗試什么有什么建議?

這對我有用:

filteredRows: function(filterStates) {
    running_total = $("#assets tbody tr").filter(":visible").length;
    $("#total_rows_returned").html(running_total);
}

這可能是您要查找的回調: $('#myTable').tableFilterRefresh();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM