【问题标题】:Links on BxSlider not working in Google Chrome but working in all other browsersBxSlider 上的链接在 Google Chrome 中不起作用,但在所有其他浏览器中都起作用
【发布时间】:2019-08-20 01:15:06
【问题描述】:

点击的错误信息是

jquery.js:4388 [违规] 向阻止滚动的“touchmove”事件添加了非被动事件侦听器。考虑将事件处理程序标记为“被动”以使页面更具响应性。见https://www.chromestatus.com/feature/5745543795965952

我可以在新的点击中右键单击打开链接。更重要的左键单击不起作用。

在所有其他浏览器上,链接都可以正常工作

请帮帮我

【问题讨论】:

  • 请帮我解决问题而不是投反对票?
  • 您需要发布minimal reproducible example。仅供参考,我还没有对你投反对票。

标签: javascript jquery html carousel bxslider


【解决方案1】:

插件的作者知道这个错误。 您可以在这里跟踪进度bxSlider issues

等待补丁时的快速解决方法是将 touchEnabled 设置为 false。

$('.your-slider').bxSlider({
        touchEnabled: false
    });

【讨论】:

  • 今天看来问题又回来了。
【解决方案2】:

或者在您的 jquery.bxslider.js 文件中: 替换这个:

if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); }

有了这个:

if (navigator.maxTouchPoints > 0) { initTouch(); }

这为我解决了。

【讨论】:

    【解决方案3】:

    我遇到了同样的问题。我恢复到 bxslider Version 4.2.1. ,因为我迫不及待地想要修复错误,我也不愿意禁用“touchEnabled”设置,也不愿意触摸库代码。有了这个版本,一切都可以正常工作(即使在 Chrome 77 中)。

    【讨论】:

    • 我刚刚确认版本 4.2.1 处理点击正确。
    【解决方案4】:

    这对我有用

    或者在你的 jquery.bxslider.js 文件中:替换这个:

    if (slider.settings.touchEnabled && !slider.settings.ticker) { initTouch(); }
    

    有了这个:

    if (navigator.maxTouchPoints > 0) { initTouch(); }
    

    谢谢赫伯特

    【讨论】:

      猜你喜欢
      • 2013-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-27
      • 2020-03-29
      • 1970-01-01
      • 2013-06-10
      相关资源
      最近更新 更多