对给定对象注册的事件进行测试我已经尝试了建议here的答案,其后跟几乎所有类似/重复问题的答案。检查.data('events')
根本不起作用,返回undefined
我以前有过的对象(立即在那个)注册了一个事件。jQuery;使用.live()
现在,需要注意的是,我实际上使用.live()
注册了所述事件,而不是使用.bind()
或别名方法。
我刚才读(以前我连发帖的问题)从jQuery的下面上.live()
:
的
.live()
方法能够影响尚未被添加到元素通过使用事件委托来实现DOM:绑定到祖先元素的处理程序负责在其后代触发的事件。 传递给.live()
的处理程序永远不会绑定到元素;相反,.live()
将特殊处理程序绑定到DOM树的根目录。在上面的例子中,当单击新元素时...
鉴于这一信息,你会怎么办?(如果有可能的话)检查一个事件是否以“注册”给定物体.live()
?有了这个新发现的信息,我猜它会与window
或document
对象开始......
理念更新:如果有一种方法可以挖掘到的.live()
的DOM监测能力,或许我可以简单地通过.bind()
每当发生变化时重新绑定事件(相同到的.live()
,与然而,对于.data('events')
检查的支持,这些事件直接绑定。)
太好了!谢谢@ RocccoC5 - 像魅力一样工作,我只需要在第一个解决方案(*'obj [0] .selector')中为'obj'添加一个偏移量,因为它返回一个单元素数组* * – Dan
@Bracketworks - 很高兴听到。不知道为什么你需要在'obj'上指定索引。调用'each()'应该遍历'$ .data(document,“events”),live'数组中的每个对象,并将对象的索引作为'idx'参数传递给函数,和实际的对象作为'obj'参数。看看这个:http://jsfiddle.net/Xu3Yn/1/ – RoccoC5