【问题标题】:Unable to preventDefault inside passive event listener - Swipebox Mobie无法在被动事件侦听器中阻止默认值 - Swipebox 电影
【发布时间】:2017-12-20 14:21:02
【问题描述】:

我正在使用 Swipebox:http://brutaldesign.github.io/swipebox/ 我知道我可以用这样的滑动框幻灯片打开内容

// Link to click
<a href="#mydiv" class="my-swipebox">Click to show</a>

// And the div in html
<div id="#mydiv">Click <a href="http://example.com">Here</div>

问题是当它通过 mobie 上的 swipebox 打开时,我无法单击该 div 内的链接(在桌面上它工作得很好)

chrome 浏览器显示此日志:

[Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/features/5093566007214080
preventDefault @ js_3q9o_g1v9VMwOb38KwiIL35eXGTsWaJ31hpdemJVNbY.js:5
dispatch @ js_3q9o_g1v9VMwOb38KwiIL35eXGTsWaJ31hpdemJVNbY.js:5
v.handle @ js_3q9o_g1v9VMwOb38KwiIL35eXGTsWaJ31hpdemJVNbY.js:5

如何解决这个问题,非常感谢

【问题讨论】:

  • 能否将您的 JavaScript 连同您的问题一起发布。
  • 您好@KristianRoebuck,您可以在本页底部下载代码brutaldesign.github.io/swipebox,您可以将我的代码放入index.html,通过$(".my 进行滑动调用(javascript) -swipebox").swipebox()。谢谢

标签: javascript slideshow swipe preventdefault


【解决方案1】:

被动事件侦听器是您向浏览器承诺永远不会调用 event.preventDefault() 的事件。这样浏览器可以优化滚动/触摸等操作,因为浏览器可以假设开发人员不会被取消(例如禁用滚动)。

Chrome 在版本 56 中默认启用此功能:https://www.chromestatus.com/features/5093566007214080。他们将此更改作为优化滚动的一种方式。

如果您不希望这种情况发生,您可以将 {passive: false } 作为第三个参数添加到 .addEventListener

阅读更多关于被动事件的信息:https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md

【讨论】:

    【解决方案2】:

    我在 .js 中添加了loop: true 为了这 : $('.owl-carousel').owlCarousel({ 它的工作

    【讨论】:

    • 欢迎来到 SO!试着解释一下你的答案。即使它正在工作,也不清楚应该做什么。
    • 就我而言,我的 js 在这里: $('.owl-carousel').owlCarousel({ rtl: true, // loop: true, // dots: true, autoWidth: true, margin: 13, responsive: {//用于显示项目的计数 0: { items: 1 }, 480: { items: 2 }, 768: { items: 5 }, 100: { items: 10 } } });我没有注释 loop:true ,这个错误是好的
    • 所以,请将此信息添加到您的答案中,您将获得支持。太好了!
    猜你喜欢
    • 2017-06-25
    • 2019-09-08
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 2020-01-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多