js,从委托分配的事件中检查父级的子名称或选择器

时间:2013-02-09 23:09:03

标签: javascript jquery events handler

我有一个棘手的问题。

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_nameevent_handler;

但是,此方法仅适用于直接为元素分配事件的时间。

如果委派了分配的事件,我该如何开发代码呢?

$(document).on('click', '#id', handler);

上面的代码只会显示事件名称click及其处理程序handler,但不会显示委托分配的元素#id的名称或选择器。

我想知道如何读取委托分配的元素的名称,我可以委托关闭,或者父母的所有事件都将关闭。

非常感谢你的建议。

1 个答案:

答案 0 :(得分:3)

selector存储在selector下的点击事件数组中的对象中,如下所示。

当您查看直接绑定到该元素的selector个事件时,click字段似乎为空。

我认为你可以以某种方式检查你的代码。请注意,selector属性显然仅供内部使用,因为我在过去对此有一个问题,当时我发现它偶尔包含奇怪的值。

为此,尽管它可能对您有用,但我不知道它有多可靠,或者即使它将在未来版本的jQuery中使用。

但是,如果您只将它用于委托事件,您可能会发现它包含有用的值,但请密切关注它。

enter image description here