[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See <URL>由于目标被视为被动的,无法阻止被动事件侦听器内部的默认。看到< URL >我只是来回点击了下
2 回答
FFIVE
TA贡献1797条经验 获得超6个赞
你去了解下Passive Event Listeners。
Passive Event Listeners是Chrome提出的一个新的浏览器特性:Web开发者通过一个新的属性passive来告诉浏览器,当前页面内注册的事件监听器内部是否会调用preventDefault函数来阻止事件的默认行为,以便浏览器根据这个信息更好地做出决策来优化页面性能。当属性passive的值为true的时候,代表该监听器内部不会调用preventDefault函数来阻止默认滑动行为,Chrome浏览器称这类型的监听器为被动(passive)监听器。目前Chrome主要利用该特性来优化页面的滑动性能,所以Passive Event Listeners特性当前仅支持mousewheel/touch相关事件。
出现这种情况估计是你点击页面的时候,触发了touch事件,而touch事件默认的passive是true,但是对应的touch事件中又使用了preventDefault, 所以会触发这个错误
解决方案参考:明确告诉浏览器对应事件的passive为false
el.addEventListener( 'touchstart', fn, { passive: false } );
添加回答
举报
0/150
提交
取消