【问题标题】:Better solution than 'callback like behaviour'比“类似回调的行为”更好的解决方案
【发布时间】:2012-06-18 09:25:12
【问题描述】:

我使用 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 )}});

与选项过滤行相同。它们都不起作用,行数没有更新。我已经尝试过 console.log() ,当我过滤行时它​​们似乎甚至没有被触发,而且当我设置了这些选项时,我得到了一些奇怪的行为 - 有时我重新加载页面,没有过滤设置,但我在第三次重新加载之前不会显示任何内容。

您对我应该尝试什么有什么建议吗?

【问题讨论】:

    标签: javascript jquery callback tablefilter


    【解决方案1】:

    这对我有用:

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

    【讨论】:

      【解决方案2】:

      这可能是您正在寻找的回调:$('#myTable').tableFilterRefresh();

      【讨论】:

        猜你喜欢
        • 2021-05-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-24
        • 2013-10-22
        相关资源
        最近更新 更多