如何解决通过 guid 删除事件处理程序
我可以获得有关此类元素的所有事件处理程序的信息。
$._data($('#element_id')[0],"events");
这为我提供了每个事件处理程序的记录。
0: {type: "change",origType: "change",data: null,guid: 315,handler: ƒ,…}
我想使用此 guid 删除特定的事件处理程序。
我知道另一种方法是使用回调函数的名称或命名空间,但这个问题是关于使用 guid。
解决方法
$.prototype.unbindByGuid = function (guid) {
$(this).each(function (index,element) {
var handlers = [];
$.each($._data(element,"events"),function (key,value) {
$.each(value,function (index,value) {
if(value.guid == guid) handlers.push({eventType: key,handler: value.handler});
});
});
handlers.forEach(function (handler) { $(element).unbind(handler.eventType,handler.handler); });
});
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。