【发布时间】:2015-08-02 21:50:39
【问题描述】:
是否可以在浏览器中看到(调试)从 DOM 元素触发的自定义事件?
假设我想查看 Bootstrap Collapse 的哪个特定元素触发了show.bs.collapse event,我能以某种方式在 Chrome 开发工具中看到它吗?
【问题讨论】:
标签: dom google-chrome-devtools dom-events
是否可以在浏览器中看到(调试)从 DOM 元素触发的自定义事件?
假设我想查看 Bootstrap Collapse 的哪个特定元素触发了show.bs.collapse event,我能以某种方式在 Chrome 开发工具中看到它吗?
【问题讨论】:
标签: dom google-chrome-devtools dom-events
您可以使用Visual Event 2 小书签。用于检查哪些事件附加到特定 DOM 元素的好工具。
【讨论】:
【讨论】:
首先,Monitor Events 将处理正常的 JS 事件。然而,Bootstrap 事件是 jQuery 事件,所以 vanilla JS 事件监听器不会监听它们。
要监听 jQuery 事件,请在控制台中运行以下代码 sn-p:
jQuery('body').bind("show.bs.collapse", function(e){console.log(e);});
用你想要的任何事件替换“shown.bs.collapse”。当它们被记录时,只需检查事件的目标元素就知道是什么触发了它。
现在,反过来,看看什么是监听事件。在元素面板中,如果您转到事件侦听器选项卡并取消选中“祖先”,那么您将只看到元素上直接绑定的事件侦听器。这样你就知道什么在监听事件,这样你就可以检查当它被触发时应该做什么。这很重要,因为您可能会发现 'body' 没有收到该事件,因为它可能已取消冒泡。因此,如果上述 sn-p 不起作用,则需要在侦听事件的元素中检查气泡取消。
【讨论】: