【发布时间】:2018-06-18 00:09:11
【问题描述】:
Chrome 警告我:“向阻止滚动的 'mousewheel' 事件添加了非被动事件侦听器”。
我希望该警告消失。我使用的是 Vue js 2.5.13,根据documentation,您可以使用<div v-on:scroll.passive="onScroll">...</div> 使事件被动。但是,我无法弄清楚鼠标滚轮事件。
这是我的代码:
<select v-model='selectWatcher'>
<option v-for="option in myOptions" v-bind:value="option.id">{{option.name}}</option>
</select>
如果有帮助,selectWatcher 是我的 vue 实例的 watch 部分中的一个函数。
我试过了:
<select v-model='selectWatcher' v-on:mousewheel.passive>
<select v-model='selectWatcher' v-on:mousewheel.passive="true">
<select v-model='selectWatcher' v-on:scroll.passive="mousewheel">
这些都不起作用,我仍然收到警告。我究竟做错了什么?我是否需要以某种方式将selectWatcher 标记为被动?
【问题讨论】:
-
.passive事件修饰符是 new in 2.3.0+ -
是的,我使用的是 vue 2.5
-
您包含的代码没有
v-on:mousewheel,因此不清楚错误是在哪里产生的。 FWIW,只有您尝试的最后一个v-ons 结构正确。 -
我没有在代码中的任何地方专门使用鼠标滚轮事件,但这是 Chrome 警告的事件。每次我单击带有
v-model的选择框时都会发生这种情况 -
听起来这是一个与
select关联的 Vue 内部事件,在这种情况下,我认为您无能为力。我相信selectWatcher也是数据项或道具?
标签: vue.js vuejs2 passive-event-listeners