6

我们有一个非常 JS 密集型的 Web 应用程序,主要基于 jQuery 的live绑定(事实上,我们从 jQuery v1.7 之前就一直在做这个)。

Chrome 的内置开发工具很棒,但是有一个问题一直在发生,我总是发现几乎不可能用它们进行调试:有时我的live处理程序没有被调用,因为之前的处理程序停止了事件冒泡

有什么方法可以告诉 Chrome(或者实际上是 Firebug 或其他扩展程序或书签(最好是免费的!))在 jQuery 库代码之外的下一个事件处理程序上中断。这样我可以简单地单击按钮并查看触发的事件,单步执行并查看我何时意外停止传播?

如果没有,是否有充分的理由不这样做?这可以做到吗?

4

3 回答 3

7

您可能会发现这很有用:http ://www.sprymedia.co.uk/article/Visual+Event+2

称为 Visual Event 的 Javascript 小书签,它直观地显示页面上订阅了事件的元素、这些事件是什么以及事件在触发时将运行的功能......

事实证明,W3C 推荐的 DOM 接口没有提供标准方法来找出哪些事件侦听器附加到特定节点......因此,我们不得不查看通常维护缓存的各个 Javascript 库附加事件(以便以后可以删除它们并执行其他有用的抽象)。

于 2012-06-27T04:26:19.877 回答
3

在 Chrome DevTools 中,您可以按事件类型设置断点:

https://developers.google.com/chrome-developer-tools/docs/scripts-breakpoints#listeners

不过,您不能排除 jQuery 事件。

顺便说一句,您应该使用委托而不是 live()

于 2012-06-22T11:41:28.167 回答
1

除了 DG 响应,这是 Visual Event 的Chrome 扩展。完美工作

于 2014-10-10T10:15:12.847 回答