如何从 videojs 中禁用/删除 touchstart 事件?

Jon*_*Sud 6 javascript video.js

我想使用 PreventDefault 禁用 videojs 中的 touchstart 事件。

player.on('touchstart', (e) => { e.preventDefault() });
Run Code Online (Sandbox Code Playgroud)

但我收到此错误:

Unable to preventDefault inside passive event listener invocation.
Run Code Online (Sandbox Code Playgroud)

我也没有可用的处理程序removeEventListener

我可以做什么来删除此事件?

San*_*tel 7

如果您想删除事件,请尝试以下操作:

 player.off('touchstart',function(){})
Run Code Online (Sandbox Code Playgroud)

如果您想自定义并防止默认,请尝试以下操作:

player.on('touchstart', (e) => { e.preventDefault() },{passive: false});
Run Code Online (Sandbox Code Playgroud)

也可以通过不提供函数来完全删除事件:

player.off('touchstart');
Run Code Online (Sandbox Code Playgroud)

或者可以提供一个数组:

const eventsToRemove = [
  'mousemove',
  'mouseover',
  'mouseup',
  'mousedown',
  'mouseleave',
  'touchstart'
];

player.off(eventsToRemove);
Run Code Online (Sandbox Code Playgroud)

有关更多详细信息: https://docs.videojs.com/docs/api/player.html#Methodsoff