首页 > 前端故事

js怎样判断某个dom元素是否绑定了js事件呢?

时间:2020-05-27|浏览次数:194次

js 有没有办法 判断一个dom元素是否已经绑定了某个事件?

据我所知原生的不好弄(反正我是没办法搞),jquery的实现其实很简单。
jquery的事件都是事件委托,所有的事件都被它存了起来,判断某元素是否绑定了某事件,只需要在事件堆栈里面查询一遍就知道了

用原生的,确实比较痛苦。不能判断是否已经绑定,但是如果处理函数(对象)未变的话,是可以 remove 的,用 removeEventListener 。

以下代码我在jquery3.5.1环境测试,可以正常运行:

// 绑定事件
$('.el').click(function(){
    //...
});


// 查询刚才绑定的事件
var eventList = $._data($('.el').get(0), 'events');
console.log(eventList);