Javascript 在knockout.JS中阻止滚动事件

Javascript 在knockout.JS中阻止滚动事件,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我需要在溢出区域重新实现滚动功能,以便鼠标滚轮更改当前选择而不是滚动位置 至少要做到这一点,我需要阻止浏览器的默认滚动动作。 据我所知,如果您不从事件处理程序返回“true”,那么knockout在默认情况下会执行此操作 但是,它似乎不起作用,对事件显式调用“preventDefault”也不起作用。此问题必须特定于滚动事件 scrolled: function (vm, event) { event.preventDefault(); return false; } <

我需要在溢出区域重新实现滚动功能,以便鼠标滚轮更改当前选择而不是滚动位置

至少要做到这一点,我需要阻止浏览器的默认滚动动作。 据我所知,如果您不从事件处理程序返回“true”,那么knockout在默认情况下会执行此操作

但是,它似乎不起作用,对事件显式调用“preventDefault”也不起作用。此问题必须特定于滚动事件

scrolled: function (vm, event) {
    event.preventDefault();
    return false;
}
<div class="container" data-bind="foreach: items, event: { mousewheel: scrolled }">

示例:

感谢Andrey指出您应该使用鼠标滚轮事件而不是滚动事件

scrolled: function (vm, event) {
    event.preventDefault();
    return false;
}
<div class="container" data-bind="foreach: items, event: { mousewheel: scrolled }">

-检查这个答案这是使用jquery插件,只是在敲除绑定中包装初始化。一个可能的解决方案,但我真正想要的是我无法阻止我所处的位置指示无法取消滚动itelf事件。这一定意味着ko和jquery在这里都没有错。我想我不同意这种UI行为——如果我看到一个可滚动的区域,我希望能够用我的滚轮滚动它……同意@JamesThorpe,但回答不错,伙计#罗伊+1。Cheers根据此链接,mousewheel似乎已被弃用,取而代之的是“wheel”: