jQuery查找在对象中注册的事件处理程序。

jQuery查找在对象中注册的事件处理程序。

我需要找到在对象上注册的事件处理程序。

例如:

$("#el").click(function() {...});$("#el").mouseover(function() {...});

$("#el")点击滑鼠注册了。

是否有一个函数可以找出这一点,并可能对事件处理程序进行迭代?

如果不可能通过适当的方法对jQuery对象进行处理,那么在普通的DOM对象上是否有可能呢?


慕容森
浏览 645回答 4
4回答

慕标5832272

从jQuery1.8开始,事件数据不再可以从数据的“公共API”中获得。朗读,阅读这个jQuery博客文章..现在应该使用以下方法:jQuery._data( elem, "events" );elem应该是HTML元素,而不是jQuery对象或选择器。请注意,这是一个内部的,‘私有’的结构,不应该被修改。仅用于调试目的。在jQuery的旧版本中,您可能必须使用旧方法,即:jQuery( elem ).data( "events" );

守候你守候我

对于jQuery 1.8+,这将不再有效,因为内部数据被放置在不同的对象中。现在,非官方的(但在以前的版本中也起作用,至少在1.7.2中)是这样做的-$._data(element, "events")下划线(“_”)是这里的区别所在。在内部,它正在调用$.data(element, name, null, true),最后(第四个)参数是内部参数(“pvt”)。
打开App,查看更多内容
随时随地看视频慕课网APP