javascript - 如果您不知道元素的 id 或类,如何查找/调试所有 jQuery 事件绑定(bind)的列表

标签 javascript click jquery

我使用 click() 动态添加了 jQuery 单击事件-功能:

$("#elementId").click(function() {
    debugger;
    //Some code
});

我意识到您可以使用 data attribute 来查找事件:

$('#elementId').data("events");

但是如果您想动态地找到它们(如果有的话)怎么办?例如

<div id="containerWithComplexStructure">
    //Some elements with .click events may be in here
</div>

如果您不知道他们的 ID 或类(class),那么如何找到他们?

您可以通过 Chrome Developer Tools 访问它们吗?框架(或类似的工具),能够浏览它们的变量等?

与此类似(点击图片放大):

Chrome Developer Tools view, stopped at a breakpoint http://imageshack.us/a/img138/1209/findclickfunction.png

For a single known element see: How to debug JavaScript/jQuery event bindings with Firebug (or similar tool)

最佳答案

简单,console.log( jQuery('#elementId').data('events') ); 在您的代码中;

或者只是在控制台中使用jQuery('#elementId').data('events');

要查看所有元素的事件:

var elements_with_events = 0;
$('*').each(function(i,e){

    if($(e).data('events')){
        console.log( $(e) );
        console.log( $(e).data('events') );
        elements_with_events++;
    }

});
console.log( elements_with_events + ' elements have events.' );

...然后等待崩溃。实际上,这速度快得惊人。

您也可以在附加事件时添加一个类。那么您就不再搜索每个事件,而是搜索类。

关于javascript - 如果您不知道元素的 id 或类,如何查找/调试所有 jQuery 事件绑定(bind)的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12514263/

相关文章:

javascript - lambda : Fold an object

javascript - MongoDb 按其他集合中的计数对集合进行排序

javascript - 将输入标签制作成下拉列表

php - 需要一些解决办法。 jquery 中的点击事件中未调用 Javascript 函数

javascript - 想要在输入字段中使用 AngularJs 禁用 91

javascript - SAP UI5 Json 模型计数

Javascript 推送不是一个函数

javascript - 在 onchange 和通过文本框将数字存储在数组中时遇到问题

ajax - jQuery 'on' 未在动态生成的模式弹出窗口中注册

javascript - 在 Javascript 中使用 setTimeout 模拟点击