当前位置: 首页 > 面试题库 >

如何使用Firebug或类似工具调试JavaScript / jQuery事件绑定?

段良弼
2023-03-14
问题内容

我需要调试一个使用jQuery进行一些相当复杂和混乱的DOM操作的Web应用程序。某一时刻,某些与特定元素绑定的事件并未触发,只是停止工作。

如果我有能力编辑应用程序源代码,那么我将向下钻取并添加一堆Firebugconsole.log()语句和注释/取消注释代码段,以试图找出问题所在。但是,假设我无法编辑应用程序代码,并且需要使用Firebug或类似工具完全在Firefox中工作。

Firebug非常擅长让我浏览和操作DOM。不过,到目前为止,我还无法弄清楚如何使用Firebug进行事件调试。具体来说,我只想查看在给定时间绑定到特定元素的事件处理程序的列表(使用Firebug
JavaScript断点来跟踪更改)。但是Firebug无法查看绑定事件,或者我太笨了,找不到它。:-)

有什么建议或想法吗?理想情况下,我只想查看和编辑绑定到元素的事件,就像今天编辑DOM一样。


问题答案:

请参阅如何在DOM节点上查找事件侦听器。

简而言之,假设某个事件处理程序已附加到您的元素(例如):$('#foo').click(function(){console.log('clicked!') });

您可以像这样检查它:

  • jQuery 1.3.x

    var clickEvents = $('#foo').data("events").click;
    

    jQuery.each(clickEvents, function(key, value) {
    console.log(value) // prints “function() { console.log(‘clicked!’) }”
    })

  • jQuery 1.4.x

    var clickEvents = $('#foo').data("events").click;
    

    jQuery.each(clickEvents, function(key, handlerObj) {
    console.log(handlerObj.handler) // prints “function() { console.log(‘clicked!’) }”
    })

请参阅jQuery.fn.data(jQuery内部存储您的处理程序的位置)。

  • jQuery 1.8.x
    var clickEvents = $._data($('#foo')[0], "events").click;
    

    jQuery.each(clickEvents, function(key, handlerObj) {
    console.log(handlerObj.handler) // prints “function() { console.log(‘clicked!’) }”
    })



 类似资料:
  • 本文向大家介绍如何使用Firebug调试JavaScript / jQuery事件绑定?,包括了如何使用Firebug调试JavaScript / jQuery事件绑定?的使用技巧和注意事项,需要的朋友参考一下 假设事件处理程序已附加到您的元素。对于例如, 然后,您可以像这样调试它: 对于jQuery 1.3.x 对于jQuery 1.4.x  对于jQuery 1.8.x +

  • 本文向大家介绍如何使用JavaScript处理绑定事件?,包括了如何使用JavaScript处理绑定事件?的使用技巧和注意事项,需要的朋友参考一下 要使用JavaScript处理事件,请在任何元素上对鼠标单击事件使用click。 示例 您可以尝试运行以下代码,以了解如何使用JavaScript处理绑定事件:

  • 问题内容: 您可以在Google Chrome中使用类似Firebug的东西吗? 我想要的基本功能: 检查HTML源(选择元素,将其删除等) 检查CSS值(内置解决方案有些奇怪) 问题答案: Chrome已经内置了类似Firebug的工具。只需右键单击页面上的任意位置,然后从菜单中选择“检查元素”。Chrome具有用于调试的图形工具(例如在Firebug中),因此您可以调试JavaScript。它

  • 有没有任何方法可以有一个发生在网页上的事件的调用堆栈? 在web页面上添加了小部件后,我开始遇到许多“太多递归”错误,但从代码中可以看到的情况来看,没有明显的事件气泡问题(选中jQuery太多递归) 错误发生在点击页面上的任何地方之后(经过一定的延迟) 我尝试用手动防止事件冒泡,但这似乎没有什么好处。 我甚至写了一堆,但在输出中看起来一切正常。 因此,如果能有一种快速的方法来跟踪正在调用的事件(在

  • 本文向大家介绍教你如何使用firebug调试功能了解javascript闭包和this,包括了教你如何使用firebug调试功能了解javascript闭包和this的使用技巧和注意事项,需要的朋友参考一下 对于跟我一样,自学javascript且没有其他语言学习经验的人来说,一开始的时候,javascript的调试也是一个比较大的难点,很多基础的东西都需要自己去摸索,这个过程是非常苦闷的。 想着

  • 本文向大家介绍JavaScript调试工具汇总,包括了JavaScript调试工具汇总的使用技巧和注意事项,需要的朋友参考一下 现在的JavaScript事实上已然成为了流行的web语言,即使它并不完美。很多程序员不喜欢用JavaScript写代码,是因为写到后来总会出现各种莫名其妙的bug,而且在开发大型应用程序的过程中很容易犯错。而且鉴于当今此类工具的现状,要想在浏览器上做JavaScript