我需要找到在对象上注册了哪些事件处理程序。
例如:
$("#el").click(function() {...}); $("#el").mouseover(function() {...});
$("#el")已注册 单击 和 鼠标悬停 。
$("#el")
是否有一个函数可以找出它,并可能遍历事件处理程序?
如果通过适当的方法在 jQuery 对象上是不可能的,那么在普通的 DOM 对象上是否可能?
从 jQuery 1.8 开始,事件数据不再可从“公共 API”获取数据。您现在应该改用它:
jQuery._data( elem, "events" );
elem应该是 HTML 元素,而不是 jQuery 对象或选择器。
elem
请注意,这是一个内部的“私有”结构,不应修改。仅将其用于调试目的。
在旧版本的 jQuery 中,您可能必须使用旧方法,即:
jQuery( elem ).data( "events" );