为什么我的代码不禁用 mousewheel 事件?

Joh*_*low 1 html javascript asp.net-mvc jquery google-chrome

当我在 chrome 上滚动时,我的网站出现错误。

jquery-3.3.1.min.js:2 [Intervention] 由于目标被视为被动,因此无法阻止被动事件侦听器内部的默认值。见https://www.chromestatus.com/features/6662647093133312

为了防止这种情况:

 $(document).ready(function () {

    $(window).on("mousewheel", function(e){
    if(e.originalEvent.deltaY > 0) {
        e.preventDefault();
        return;
    } else if (e.originalEvent.wheelDeltaY < 0) {
        e.preventDefault();
        return;
    }    

});
 });
Run Code Online (Sandbox Code Playgroud)

在布局/母版页中使用它。

但它没有效果,错误也不会消失。

Rex*_*Hsu 5

您应该将选项中的参数“passive”设置为“false”

MDN 添加事件监听器

被动:一个布尔值,如果为真,则表示侦听器指定的函数永远不会调用 preventDefault()。如果被动侦听器确实调用了 preventDefault(),则用户代理除了生成控制台警告之外什么也不做。请参阅使用被动侦听器提高滚动性能以了解更多信息。

window.addEventListener('mousewheel', function(e) {
    e.preventDefault();
}, { passive: false });
Run Code Online (Sandbox Code Playgroud)