如何通过guid移除jQuery绑定的指定事件处理程序
使用guid移除jQuery绑定的指定事件处理程序的方法
jQuery内部会为每一个绑定到元素的事件处理程序分配唯一的guid属性,用于标识不同的handler,你可以按照下面的步骤操作:
- 先获取元素绑定的所有事件集合
const elemEvents = $._data($('#element_id')[0], "events");
- 遍历对应事件类型的handler列表,匹配到目标guid后调用
off方法移除
比如你要移除change事件下guid为315的处理程序,代码如下:
const targetGuid = 315; // 遍历对应事件类型下的所有处理程序记录 elemEvents.change.forEach(record => { if (record.guid === targetGuid) { // 传入事件类型和对应的handler函数即可移除指定项 $('#element_id').off('change', record.handler); // 只移除第一个匹配项可在此处加 break } });
注意:
$._data属于jQuery未公开的内部API,不同版本的内部存储结构可能存在差异,生产环境使用请提前验证对应jQuery版本的兼容性。
内容的提问来源于stack exchange,提问作者Wojciech
相关产品推荐
相关产品推荐

