我使用 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 访问它们吗?框架(或类似的工具),能够浏览它们的变量等?
与此类似(点击图片放大):
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/