我有一个棘手的问题。
events = $._data( element[0], 'events');
$.each(events, function(_event_name, _event_handler){
var _handlers=[];
for(var i= 0 ;i < _event_handler.length;i ++)
_handlers.push(_event_handler[i].handler);
event_handler.push(_handlers);
event_name.push(_event_name);
});
element.off();
我上面的代码可以成功阅读为元素分配的所有event name
及其handler
。
然后,在关闭事件之前,我将每个人保存到event_name
和event_handler
;
但是,此方法仅适用于直接为元素分配事件的时间。
如果委派了分配的事件,我该如何开发代码呢?
$(document).on('click', '#id', handler);
上面的代码只会显示事件名称click
及其处理程序handler
,但不会显示委托分配的元素#id
的名称或选择器。
我想知道如何读取委托分配的元素的名称,我可以委托关闭,或者父母的所有事件都将关闭。
非常感谢你的建议。
答案 0 :(得分:3)
selector
存储在selector
下的点击事件数组中的对象中,如下所示。
当您查看直接绑定到该元素的selector
个事件时,click
字段似乎为空。
我认为你可以以某种方式检查你的代码。请注意,selector
属性显然仅供内部使用,因为我在过去对此有一个问题,当时我发现它偶尔包含奇怪的值。
为此,尽管它可能对您有用,但我不知道它有多可靠,或者即使它将在未来版本的jQuery中使用。
但是,如果您只将它用于委托事件,您可能会发现它包含有用的值,但请密切关注它。