javascript - 向滚动阻塞 'touchstart' 事件添加了非被动事件监听器

标签 javascript jquery

今天突然之间,我开始在我们网站的每个页面上看到这个

Added non-passive event listener to a scroll-blocking 'touchstart' event.
Consider marking event handler as 'passive' to make the page more responsive

而且这不仅仅是一次或两次......它就像数千次......

enter image description here

他们正在胡作非为。

阻止大量违规行为的唯一方法是注释掉这一行

  <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.12.4/jquery.min.js" type="text/javascript"></script>

我阅读了有关此违规含义的其他帖子,但我真的看不出两个小时前和现在之间我做了什么不同的事情(我做了完全回滚只是为了看看它是否有帮助)

这几乎就像有人在 jquery.min.js 中放入了一个错误,但我严重怀疑这一点,因为那样每个人都会明白它。

有什么想法吗?我尝试了所有可能的调试,但我仍然不知道是什么原因导致的?!?

更新

我替换了所有<button><md-tooltip>text</md-tooltip></button><button data-toggle="tooltip" title="text"></button>这消除了 99% 的违规行为。

最佳答案

这解决了我的问题:

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 });
    }
  }
};

关于javascript - 向滚动阻塞 'touchstart' 事件添加了非被动事件监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46094912/

相关文章:

javascript - JQUERY 1.4.4 脚本错误 - "Object required"- 在 IE 8 中执行加载但不在其他版本中时

JavaScript 正则表达式——匹配一系列十六进制数

javascript - jQuery 在满足某些条件时调整窗口大小和加载文档

javascript - Javascript 中函数流的最佳实践?

javascript - D3.js 中的 setTimeout

javascript - 每次使用 D3 V3 或 JavaScript 单击按钮时使 svg 元素的颜色变暗

javascript - 固定 div 的内容随着其他 div 的滚动而改变

javascript - 模式中的表单以相同的操作提交(相同的 PHP 文件)

javascript - jQueryUI 对话框不显示

jquery - 在将表单发布到操作方法之前显示 jQuery 对话框