javascript - 由于目标被视为被动,无法在被动事件侦听器中阻止默认值 - Chrome
问题描述
我使用了下面的代码并开始得到下面提到的错误代码有什么问题以及修复它的方法是什么。
由于目标被视为被动,无法在被动事件侦听器中阻止默认值。见https://www.chromestatus.com/features/6662647093133312
<script>
jQuery(window).scroll(function() {
if (jQuery(this).scrollTop() > 400) {
jQuery('.headerN').css("width", "100%");
jQuery('.headerN').slideDown();
} else {
jQuery('.headerN').slideUp();
}
});
</script>
解决方案
在 JQuery 中,它仍然是一个未解决的问题:https ://github.com/jquery/jquery/issues/2871
您可以在事件中使用 vanilla js 执行此操作:
el.addEventListener('someEvent', someFn, { passive: false });
这就是上面提到的 github 线程上的某个人如何创建他们实施的解决方法:
jQuery.event.special.touchstart = {
setup: function( _, ns, handle ){
if ( ns.includes("noPreventDefault") ) {
this.addEventListener("touchstart", handle, { passive: false });
} else {
this.addEventListener("touchstart", handle, { passive: true });
}
}
};
推荐阅读
- python - 使用递归检查两个未排序列表的元素和长度是否相等
- sql - 如何在巨大的Oracle表中根据日期指定指定记录
- sql - 如何在 SQuirrel SQL 中创建变量
- cassandra-3.0 - 如何在 cqlsh 中查看我的用户定义类型
- haskell - 如何在 Haskell 中从这种数据类型中检索 Int?
- html - 使用表单动态更改引导警报的文本
- flutter - 在底页中切换不会改变 Flutter 上的状态
- google-apps-script - Apps 脚本错误。找不到方法 getRange(number,number,number)
- javascript - componentDidMount 多个 fetch 调用最佳实践?
- visual-studio-2017 - SQL71501:列 [dbo].[columnname] 对列加密密钥 [keyname] 的引用未解析