为TableSorter设置触发器的窗口小部件选项(applyWidgets)

时间:2014-02-19 16:26:18

标签: jquery tablesorter

可以使用此命令

初始化普通表输入器
$(function(){

  $tblSorter = $("table").tablesorter({
    widthFixed : true,
    showProcessing: true,
    headerTemplate : '{content} {icon}',
    widgets: [ 'uitheme', 'zebra', 'filter', 'scroller' ],
    widgetOptions : {
      scroller_height : 300,
      scroller_barWidth : 17,
      scroller_jumpToHeader: true,
      scroller_idPrefix : 's_'
    }
  });

});

但是,如果我在删除后重新应用滚动条,如何设置widgetOptions:

@mottie(谢谢你)指出删除滚动条的代码

$tblSorter.trigger('refreshWidgets', [true, true]); //REMOVE ALL WIDGETS
$tblSorter[0].config.widgets = ['zebra', 'columns']; //ADD ONLY ZEBRA and columns
$tblSorter.trigger('applyWidgets');

使用widgetOptions将滚动条放回tablesorter的代码:

$tblSorter.trigger('refreshWidgets', [true, true]); //REMOVE ALL WIDGETS
$tblSorter[0].config.widgets = ['zebra', 'columns', 'scroller']; //add also scroller
$tblSorter[0].config.widgetOptions  = {
   scroller_height : 500,
   scroller_barWidth : 17,
   scroller_jumpToHeader: true,
   scroller_idPrefix : 's_'
};
$tblSorter.trigger('applyWidgets');

这不起作用。

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

实际上滚动小部件需要大量的工作......它完全没有将代码从表中删除的代码。您可以使用以下代码执行此操作:

// remove scroller widget completely
$tblSorter.closest('.tablesorter-scroller').find('.tablesorter-scroller-header').remove();
$tblSorter
    .unwrap()
    .find('.tablesorter-filter-row').removeClass('hideme').end()
    .find('thead').show().css('visibility', 'visible');
$tblSorter[0].config.isScrolling = false;