Javascript 通过事件委派查找绑定到子级的功能
如果我将一个事件委托给具有以下内容的祖先Javascript 通过事件委派查找绑定到子级的功能,javascript,jquery,event-handling,event-delegation,Javascript,Jquery,Event Handling,Event Delegation,如果我将一个事件委托给具有以下内容的祖先 $("#container").on("click", ".distant_child", function(){ //... } 当我查看Chrome中的开发者工具以查看哪些点击事件被绑定时,我只看到#container的事件。是否有任何方法可以查看哪些特定功能绑定到特定元素?假设我没有误解您的问题,因为您所指的特定元素不清楚,那么委托事件仅绑定到#容器元素。jQuery选择器在事件时运行,以过滤冒泡的事件元素 委派事件通过侦听冒泡到未更
$("#container").on("click", ".distant_child", function(){
//...
}
当我查看Chrome中的开发者工具以查看哪些点击事件被绑定时,我只看到
#container
的事件。是否有任何方法可以查看哪些特定功能绑定到特定元素?假设我没有误解您的问题,因为您所指的特定元素不清楚,那么委托事件仅绑定到#容器
元素。jQuery选择器在事件时运行,以过滤冒泡的事件元素
委派事件通过侦听冒泡到未更改的祖先元素的事件来工作。然后,它对导致事件决定对哪些元素运行函数的元素应用jQuery选择器
这种对祖先的委托允许您为在事件注册时甚至不存在的元素处理事件(一件非常有用的事情)
Chrome永远不会在
元素上看到事件,因为它们没有附加事件处理程序。如果您也在寻找委托事件列表,如果这些事件使用jQuery绑定,您可以遍历元素本身和祖先的$。\u data
事件对象。例如:
var arrayEvents = [];
$('#child').parents().addBack().add(document).each(function () {
if (events = $._data(this, 'events')) {
for (event in events) {
for (var i = 0, z = events[event].length; i < z; i++)
if ($('#child').is(events[event][i].selector)) arrayEvents.push({
elem: this,
event: events[event][i].type
});
}
}
});
var arrayEvents=[];
$('#child').parents().addBack().add(文档).each(函数)(){
如果(事件=$。_数据(此为“事件”)){
for(事件中的事件){
对于(var i=0,z=events[event].length;i
该委派事件仅绑定到#容器元素。jQuery选择器在事件时运行,以过滤冒泡的事件元素。