javascript - 在 Node.js 中,从委托(delegate)分配的事件中检查父级的子级名称或选择器

标签 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_nameevent_handler 中;

但是,此方法仅在直接为元素分配事件时才有效。

当事件被委托(delegate)分配时,我如何开发代码来执行此操作?

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

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

我想知道如何读取委托(delegate)分配元素的名称,以便我可以关闭委托(delegate),否则父级上的所有事件都将关闭。

非常感谢您的建议。

最佳答案

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

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

我假设您可以以某种方式对您的代码进行检查。请注意,selector 属性显然仅供内部使用,因为我自己过去也对它有过疑问,当时我发现它偶尔包含奇怪的值。

为此,尽管它可能对您有用,但我不知道它有多可靠,甚至不知道它是否会在未来版本的 jQuery 中使用。

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

enter image description here

关于javascript - 在 Node.js 中,从委托(delegate)分配的事件中检查父级的子级名称或选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14792673/

相关文章:

javascript - 使用数组中的数据更改对象字段

javascript - Stripe 结帐。查询客户金额

javascript - 捕捉/监听函数的执行

javascript - jQuery scrollTop 问题

javascript - 没有 p 标签的 Div 文本选择器

c++ - Qt:为什么 connect() 只在主窗口类中起作用?

c# - 如何使用 JavaScript 获取客户端系统的屏幕分辨率

javascript - 如何将 json 数组转换为 javascript 数组

用于打印的 Javascript 事件处理程序

wpf - 为所有相同类型的控件设置一个事件