从 dijit.form.Slider 中移除 MouseWheel 事件

Dan*_*iel 5 events dojo slider mousewheel

正如标题中所述,我想删除 dijit.form.Slider 的鼠标滚轮功能,因为它有时会在滚动页面时触发滑块并且光标击中滑块。

但是似乎onmousewheel事件是在dojo源中连接的,我们无法替换或修改dojo文件。

任何人都知道一个简短的解决方案(最好是声明性的)?

谢谢

Ken*_*iro 3

最快的方法是破坏滑块小部件的 _mouseWheeled 方法。

声明式示例:

<div dojoType="dijit.form.VerticalSlider" name="vertical1" id="slider2" ... >
    <script type="dojo/method" event="_mouseWheeled"></script>
    ...
</div>
Run Code Online (Sandbox Code Playgroud)

编程示例,单实例:

dijit.byId('mySlider')._mouseWheeled = function() {};
Run Code Online (Sandbox Code Playgroud)

程序化,所有实例:

dojo.extend(dijit.form.HorizontalSlider, {
  _mouseWheeled: function() {}
});
Run Code Online (Sandbox Code Playgroud)

(这将涵盖水平和垂直滑块,因为VerticalSlider继承自HorizontalSlider。)