Tabulator 5.2中列配置headerContext回调不生效问题
Tabulator 5.2版本列配置headerContext回调失效问题
在特定列上使用headerContext回调实现附加列的隐藏/显示功能,该功能在Tabulator 5.1.8版本运行正常,升级至5.2版本后失效:右键列头时不会触发指定回调函数,仅弹出浏览器默认右键菜单。
对应列配置代码如下:
{ title: exampleColumnGroup, columns:[ {title:"exampleAdditionalColumn", field:"xxx", visible:false}, {title:"exampleToggleColumn", field:"yyy", headerContext:headerClickfunc}, ], }
选择在特定列上配置回调而非使用tableEvents,原因是tableEvents和ColumnGroups(列组)搭配使用时无法正常工作。目前无法确认是配置存在错误,还是遗漏了相关废弃功能的变更说明。
补充1
此前遗漏的右键触发目标函数代码如下:
function headerClickfunc(e, column){ e.preventDefault(); switch(column.getField()) { case "yyy": table.toggleColumn("xxx"); } };
升级到Tabulator 5.2后,通过列配置项headerContext:headerClickfunc绑定的函数始终无法被触发。测试全局事件绑定方式可以触发函数:
table.on("headerContext", function(e, column){ headerClickfunc(e, column); });
但该方式下调用column.getField()会返回undefined,经测试该问题与使用列组直接相关——不使用列组时该全局绑定方式可正常运行。
补充2
- Tabulator 5.2.7版本下代码失效(headerContext无响应):测试环境代码与正常运行版本完全一致,仅引入的Tabulator库版本为5.2.7,右键列头无法触发自定义回调。
- Tabulator 5.1.8版本下代码正常运行(headerContext可正常触发目标函数):同一份代码在该版本下右键列头可正常触发回调,完成列显示/隐藏切换。
两个测试环境的代码完全一致,唯一区别是作为外部资源引入的tabulator.min.js版本。
内容的提问来源于stack exchange,提问作者roman_lucas
相关产品推荐
相关产品推荐

