Tabulator 为什么我的制表器自定义标题过滤器在keyup上更改?

Tabulator 为什么我的制表器自定义标题过滤器在keyup上更改?,tabulator,Tabulator,复制: 运行代码段(建议使用整页模式) 按住Ctrl键或Shift键的同时单击以在表格列标题中选择多个“种类” 请注意,在按住键的同时,表格数据将根据选定的“种类”进行过滤 松开键,观察已过滤表格数据的变化 我认为这可能与我需要做一些事情来覆盖默认的制表键事件有关 JSFiddle: const speciesTypes=[‘人类’、‘安卓’、‘倍他唑’、‘克林贡’、‘费伦吉’、‘塔玛瑞安’]; 多功能选择器过滤器(单元){ var值=物种类型; 常量filterFunc=(行数据)=>{ 返

复制:

  • 运行代码段(建议使用整页模式)
  • 按住Ctrl键或Shift键的同时单击以在表格列标题中选择多个“种类”
  • 请注意,在按住键的同时,表格数据将根据选定的“种类”进行过滤
  • 松开键,观察已过滤表格数据的变化
  • 我认为这可能与我需要做一些事情来覆盖默认的制表键事件有关

    JSFiddle:

    const speciesTypes=[‘人类’、‘安卓’、‘倍他唑’、‘克林贡’、‘费伦吉’、‘塔玛瑞安’];
    多功能选择器过滤器(单元){
    var值=物种类型;
    常量filterFunc=(行数据)=>{
    返回值。包括(rowData['species']);
    }
    常量getSelectedValues=(多选)=>{
    var结果=[];
    var options=multiSelect&&multiSelect.options;
    var-opt;
    对于(var i=0,iLen=options.length;i{
    var editor=document.getElementById('speciesSelector');
    值=getSelectedValues(编辑器);
    日志(“值:”+值);
    cell.getColumn().getTable().removeFilter(filterFunc);
    cell.getColumn().getTable().addFilter(filterFunc);
    }
    var select=document.createElement(“select”);
    select.multiple=“multiple”;
    select.id='speciesSelector';
    select.style='宽度:100%';
    物种类型。forEach(物种=>{
    select.innerHTML+=“”+species+“”;
    });
    cell.getColumn().getTable().addFilter(filterFunc);
    select.addEventListener('change',onChange);
    返回选择;
    }
    var table=新制表器(“制表器”{
    布局:“fitColumns”,
    数据:[{姓名:'Georgi La Forge',物种:'Human'},{姓名:'Dathon',物种:'Tamarian'},{姓名:'Jean-Luc Picard',物种:'Human'},{姓名:'Worf,Mogh之子',物种:'Klingon'},{姓名:'Tasha Yarr',物种:'Human'},{姓名:'data',物种:'Android'},{姓名:'Wesley Cruser',物种:'Human'},{姓名:'Jalad',物种:'Tamarian'},{名称:'Lwaxana Troi',物种:'Betazoid'},{名称:'Temba',物种:'Tamarian'},{名称:'Kuvma',物种:'Klingon'},{名称:'Lore',物种:'Android'},{名称:'Noonian Soongh',物种:'Human'},{名称:'Darmok',物种:'Tamarian'},{名称:'Reittan Grax',物种:'Betazoid,{名称:'Quark',物种:'Ferengi},
    海德斯波特:是的,
    列:[{title:'Name',field:'Name',sorter:'string'},{title:'Species',field:'Species',sorter:'string',headerFilter:'multiSelectHeaderFilter},],
    });
    //document.multiselect(“#speciesSelector”);
    
    .制表器.制表器标题,
    .制表器.制表器标题.制表器列
    {
    溢出:未设置;
    }
    
    通过在列定义中添加
    headerFilterLiveFilter:false
    进行修复

    列:[{title:'Name',field:'Name',sorter:'string},{title:'Species',field:'Species',sorter:'string',headerFilter:multiSelectHeaderFilter,headerFilterLiveFilter:false},],
    

    通过在列定义中添加
    headerFilterLiveFilter:false
    进行修复

    列:[{title:'Name',field:'Name',sorter:'string},{title:'Species',field:'Species',sorter:'string',headerFilter:multiSelectHeaderFilter,headerFilterLiveFilter:false},],