【问题标题】:How to check if an event was prevented如何检查事件是否被阻止
【发布时间】:2013-06-11 02:27:10
【问题描述】:

在 JavaScript 中,如何检查 e.preventDefault() 是否阻止了事件(如按键)?我没有使用 jQuery。

【问题讨论】:

    标签: javascript events dom preventdefault


    【解决方案1】:

    您可以检查事件对象的 defaultPrevented 属性(这是一个布尔值,指示是否曾为该特定事件对象调用过 preventDefault)。

    【讨论】:

    • 你是怎么做到的?
    • @Jim 从您的事件侦听器中,console.log 事件。例如:document.addEventListener('touchmove', function(e) { console.log(e)})es 属性之一将是 defaultPrevented
    • 使用 event.isDefaultPrevented()
    【解决方案2】:

    顺便说一句,如果您正在寻找为什么 defaultPreventedtrue(即谁打电话给preventDefault()),这篇文章非常有帮助: https://hackernoon.com/finding-that-pesky-listener-thats-hijacking-your-event-javascript-b590593f2a83

    总结一下:

    1. 在 Chrome 中检查事件的元素。
    2. 点击侧面板中的Event Listeners 标签。
    3. 您会看到所有的听众。如果您单击它们,它们将在 Sources 选项卡中打开,您应该会看到一个 preventDefault() 呼叫。

    【讨论】:

      猜你喜欢
      • 2013-07-17
      • 2014-10-05
      • 1970-01-01
      • 2014-04-01
      • 2021-09-12
      • 2019-01-04
      • 1970-01-01
      • 2020-09-05
      • 2015-07-23
      相关资源
      最近更新 更多