javascript - 查看元素的所有 dom 事件

标签 javascript jquery jquery-ui dom-events

我有一个 jQuery UI 日期选择器,当您单击一个日期时,它会将我的 URL 哈希清除为 #,并且不会更改文本框中的日期。

我假设在某处还有一些其他 JavaScript 实用程序具有某种委托(delegate)事件,该事件也被调用、抛出错误并终止 jquery 处理程序。

我如何单步执行和/或查看所有委托(delegate)事件都匹配此 dom 元素

最佳答案

Chrome 的开发工具可以帮助解决这个问题:

  1. 将 Chrome 指向页面
  2. 右键点击 jQuery UI 日期选择器中的日期,然后选择“检查元素”。
  3. 在最右侧,有一架 Accordion ,上面有各种东西。底部附近是“事件监听器”。 (当前版本的 Chrome 开发工具对此非常智能,包括查询 jQuery 的处理程序链。)
  4. 展开“事件监听器”树项,您将看到与该元素相关的 Hook 事件列表,即使未针对 元素专门设置处理程序。 (例如,如果您使用问题上的赞成按钮执行此操作,您会看到 clicka.vote-up-offdocument。)因此您可以绕过这些以查看与该元素的事件相关的直接和委托(delegate)处理程序。

除此之外,您可以使用未缩小版本的 jQuery,并在您单击日期选择器中的日期时完成事件分派(dispatch)。

当然,Gabe's shown如何通过未记录的 jQuery events 数据获取特定于 jQuery 的处理程序。 (这不会向您显示委托(delegate)的处理程序(除非您遍历祖先树),也不会向您显示可能附加的非 jQuery 处理程序,但它仍然是非常有用的东西。)

关于javascript - 查看元素的所有 dom 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11087099/

相关文章:

javascript - 按自定义属性的值排序

javascript - Angular 4 : Load data from Json

JQuery 搜索关键字和样式最接近指定的 html 元素

javascript - 对话框中动态元素的单击事件

javascript - jQuery ui 对话框在 appendTo 之后不可拖动和调整大小?

javascript - 如何使用 jQuery 更新选择选项下拉菜单?

javascript - Vue.js devtool 更改未显示

javascript - 可以使用 javascript/jQuery 沿曲线定位元素吗?

JqueryUI数据表设置recordsTotal

javascript - 目标 ID 而不是 <li>