无法订阅 slickgrid 滚动事件

Cannot subscribe on slickgrid scroll event

我正在使用 slickgrid 作为数据容器,并尝试按照文档中的描述订阅它的 onscroll 事件,即

task_list.onscroll.subscribe(function(e, args) {
    console.log('scrolling occured');
});

实际上,我正在尝试进行其他处理,即翻译网页内容。内容没有完全翻译,所以我每次滚动页面都需要翻译。但是我收到消息

Uncaught TypeError: Cannot read properties of undefined (reading 'subscribe')

如何解决此错误并查明出现错误的原因?

您的代码中存在一些小错误,首先事件名称是驼峰式命名,因此应该是 onScroll 其次,如果您想订阅 SlickGrid 事件,则需要使用网格对象

grid.onScroll.subscribe(function(e, args) {
 // ...
});

并且不要忘记在离开页面时取消订阅,因为 onScroll 会造成很大的漏洞。我更喜欢使用 Slick EventHandler,因为它有一个更简单的 unsubscribeAll 方法,我可以在 destroying/leaving 页面

时使用它
var eventHandler = new Slick.EventHandler();
var grid = new Slick.Grid("#myGrid", dataView, columns, options);

function something() {  
  eventHandler.subscribe(grid.onScroll, function(e, args) {
    // ...
  });
}

function destroy() {
  eventHandler.unsubscribeAll();
}

希望我的代码没有错误,但只是想让你知道我在这里凭记忆写的,所以请仔细检查代码并查看多个 SlickGrid Examples,它们都可以轻松访问代码