【问题标题】:How do i identify which events have bound via JavaScript? [duplicate]我如何识别哪些事件已通过 JavaScript 绑定? [复制]
【发布时间】:2010-11-13 09:57:36
【问题描述】:

可能的重复:
How to debug Javascript/jQuery event bindings with FireBug (or similar tool)
How to find event listeners on a DOM node?

如何通过 JavaScript 检测哪些事件已绑定到 DOM 元素?在下面的示例中,我希望能够看到 click 事件已绑定在我的“可点击”范围内,并且如果可能的话,可以从 alert-line 进行调试。

我可以使用像 Firebug 这样的网络开发工具来做到这一点吗?

<html>
    <head>
         <title>Events bound with JavaScript</title>
         <script type="text/javascript"
             src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
         <script type="text/javascript">
             $(document).ready(function() {
                 $("#clickable").click(function() {
                     alert("Clicked.");
                 });
             });
         </script>
    </head>
    <body>
         <span id="clickable">Click me</span>
    </body>
</html>

【问题讨论】:

标签: javascript jquery javascript-events


【解决方案1】:
// this function will return number of keys in object
function objectLenght (obj) {
    var len = 0;
    for (var key in obj) {
        len++;
    }
    return len;
}

var objWithClickEvents = [];

// iterate through all elements
$('*').each(function() {
    var clickEvents = $.data($(this)[0], 'events').click;
    if (objectLength(clickEvents) > 0) {
        objWithClickEvents[objWithClickEvents.length] = $(this);
    }
});

如果您愿意,请将 click 替换为其他事件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-13
    • 2014-03-08
    • 1970-01-01
    • 2016-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多