【问题标题】:How to find the method that is attached to a click event of a button如何找到附加到按钮单击事件的方法
【发布时间】:2017-04-01 22:20:08
【问题描述】:

如何从 firebug 中找出哪些方法或哪些方法附加到按钮的单击事件处理程序?

这是按钮的代码

<button class="rsmg_button_save ui-button ui-widget ui-state-default ui-corner-all ui-button-text-icon-primary ui-state-focus" type="button" role="button" aria-disabled="false" style="display: inline-block;"><span class="ui-button-icon-primary ui-icon ui-icon-disk"></span><span class="ui-button-text">Save</span></button>

【问题讨论】:

  • 你的问题毫无意义。单击按钮时,浏览器会生成click 事件。你还想知道什么?可以使用 onclick 属性或通过安装事件侦听器 - addEventListener()attachEvent() 来安装函数来处理该事件,具体取决于浏览器/浏览器版本。
  • 代码如上。当我按下它时,会触发一些 javascript 函数,使用 ajax 将数据保存在数据库中。但是按钮上没有指定onclick属性
  • 然后它在某个单独的函数中。大多数开发人员不太关心像 onclick 这样的内联 javascript 处理程序。
  • 当然,但是如果没有看到 onclick,你怎么能知道哪个函数与那个 onclick 事件挂钩?
  • 如果您使用 chrome,您可以使用检查器,在底部右侧的元素选项卡中,您会看到 Event Listeners

标签: javascript jquery firebug


【解决方案1】:

如果函数是使用 jQuery 附加的,你可以使用 firebug 来查看它。
jQuery 事件使用data 方法存储,键为events
所以$("desiredSelector").data("events") 将显示附加到该特定元素的所有事件。
详情请查看link
对于 Javascript 中定义的事件,您可以检查 onClick 属性或使用 jfriend00 建议的方法。


编辑:
有一个jQuery plugin 使这更简单。

【讨论】:

  • 谢谢,我认为 chrome 更容易。但是再次酷赞
  • @themhz:很高兴我能帮上忙 :)
【解决方案2】:

Javascript 代码可以使用onclick 属性或addEventListener()attachEvent()(取决于浏览器和浏览器版本)连接到按钮点击事件。

如果有处理事件的 javascript 代码并且没有在 HTML 中指定 onclick 处理程序,则 javascript 代码正在安装事件处理程序,方法是稍后设置 onclick 属性或使用 addEventListener()attachEvent() .

【讨论】:

  • 我如何从 firebug 中看到这些钩子?
  • 在 Firefox 中,您可以检查 onclick 属性。我不知道如何在 Firebug 中查看 addEventListener() 事件处理程序(或者如果可以的话)。在 Chrome 中,您选择所需的对象并查看右侧的 Event Listeners 窗格。
  • 好人,正如你提到的,我从 chrome 中找到了它。我相信萤火虫有它
【解决方案3】:

我用上面的 $("desiredSelector").data("events") 和GetEventListeners 进行了艰苦的搜索,但在 Firebug 2.x 中,有一种非常简单的新方法可以找到绑定的事件:如果有一个绑定函数,您会在该行旁边找到一个“ev”:

很酷的东西!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2012-03-08
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多