首先,jQuery事件绑定的时候,所有事件用$.data()方法存储到了$.cache里面,用data('events')可以反复获取到它们:
代码如下:
var $div = $('div.demo'), data = $div.data();
// 获取所有绑定事件:
var events = data.events;
// 除了window对象绑定事件的比较特殊:
var windowEvents = $(window).data('__events__');
在必要的时候,可以检索有没有绑定相关处理函数:
代码如下:
var clickHandler = function(){
console.log('click test');
};
$div.click(clickHandler);
events.click.some(function(ev){
return ev.handler === clickHandler;
});
BUG示例
代码如下: