防止默认为被动默认

时间:2019-04-18 10:18:41

标签: javascript dom-events

我正在尝试防止默认的滚动行为。

最初,我是从these answers

开始尝试的
$(window).on('mousewheel DOMMouseScroll', wheel);

function wheel(e) {
    e.preventDefault()
}

这导致此错误: [Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See <URL>

好的。我找到了these questions并添加了他们的解决方案。

$(window).on('mousewheel DOMMouseScroll', wheel, {passive:false});

现在,我遇到以下错误:

Uncaught TypeError: ((p.event.special[l.origType] || {}).handle || l.handler).apply is not a function at dispatch (0dfbbab736b8.js:formatted:1850) at h (0dfbbab736b8.js:formatted:1685)

The only related question I could find只是告诉我删除{passive:false},这意味着我又回到了最初的问题。

我在做什么错?如何在此处防止默认行为?

1 个答案:

答案 0 :(得分:0)

看起来像一个晦涩的jQuery错误-为什么不抛弃jQuery而使用内置事件呢?

window.addEventListener('wheel', e => e.preventDefault(), { passive: false });
body {
  height: 2000px;
}