2015-01-06 3 views
0

Кто-нибудь знает, как выгрузить виджет фильтра, не уничтожая tablesorter и не включив его без виджета фильтра?Выгрузить виджет фильтра из 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); 
      } 
     }) 
    }) 

ответ

0

Ответил 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.

Смежные вопросы