【问题标题】:Unloading Filter Widget from Tablesorter从 Tablesorter 中卸载过滤器小部件
【发布时间】:2015-01-06 21:36:13
【问题描述】:

有人知道如何在不破坏 tablesorter 的情况下卸载过滤器小部件并在不使用过滤器小部件的情况下重新启用它吗?

这是我正在使用的代码,它非常糟糕且笨重。

<a href="#" data-active="1" class="togglefilter btn btn-primary">Toggle Filter</a>


$(function(){
        $(".togglefilter").click(function(){
            var active = $(this).data('active');
            if(active == 1 ) 
            {
                $("table").trigger('destroy');
                    $("table").tablesorter({
                            theme : "bootstrap",
                            widthFixed : true,
                            headerTemplate : '{content} {icon}', // new in v2.7. Needed to add the bootstrap icon!
                            widgets : ["uitheme","zebra"],

                            widgetOptions : {
                                zebra : ["even", "odd"],
                                filter_reset : ".reset"
                            }
                });
                $(this).data('active', 0);  
            }
            else 
            {
                $("table").trigger('destroy');
                $("table").tablesorter({
                            theme : "bootstrap",
                            widthFixed : true,
                            headerTemplate : '{content} {icon}', // new in v2.7. Needed to add the bootstrap icon!
                            widgets : ["uitheme", "filter", "zebra"],

                            widgetOptions : {
                                zebra : ["even", "odd"],
                                filter_reset : ".reset"
                            }
                });

                $(this).data('active', 1);
            }
        })
    })

【问题讨论】:

    标签: jquery tablesorter


    【解决方案1】:

    回答here,使用refreshWidget method (demo)。

    var $table = $("table").tablesorter({
        theme: "bootstrap",
        widthFixed: true,
        headerTemplate: "{content} {icon}",
        widgets: ["uitheme", "filter", "zebra"],
        widgetOptions: {
            filter_reset: ".reset"
        }
    });
    
    $('button').click(function(){
        $(this).toggleClass('nofilter');
        var widgets = ['uitheme', 'zebra'],
            noFilter = !$(this).hasClass('nofilter');
        if (noFilter) {
            widgets.push('filter');
        }
        $table[0].config.widgets = widgets;
        // refresh widgets
        $table.trigger('refreshWidgets');
        // hide filter reset button
        $('.reset').toggle(noFilter);
    });
    

    请注意,此代码不适用于原始版本的 tablesorter。

    【讨论】:

      猜你喜欢
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-16
      • 2014-08-11
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      相关资源
      最近更新 更多