Javascript 使用事件委派时获取当前冒泡阶段的目标

Javascript 使用事件委派时获取当前冒泡阶段的目标,javascript,jquery,jquery-events,event-delegation,Javascript,Jquery,Jquery Events,Event Delegation,我有一个包含一些按钮的div,我想将一个事件侦听器附加到该div,该div侦听从其中的按钮冒出的事件 我遇到的问题是event.currentTarget的值似乎与所说的不匹配 考虑以下代码: $('.container')。在('click','.myButton',函数上(事件){ 日志(“event.currentTarget:”); console.log(event.currentTarget); console.log(“event.target:”); console.log(e

我有一个包含一些按钮的div,我想将一个事件侦听器附加到该div,该div侦听从其中的按钮冒出的事件

我遇到的问题是
event.currentTarget
的值似乎与所说的不匹配

考虑以下代码:

$('.container')。在('click','.myButton',函数上(事件){
日志(“event.currentTarget:”);
console.log(event.currentTarget);
console.log(“event.target:”);
console.log(event.target);
});

点击我

您选择容器div的假设与您的事件绑定是错误的

如果您要执行以下操作:

$('.container').on('click', function(){/**/});
那么您的
事件.currentTarget
将是容器。
事件。目标可以是以下任何内容


如果添加选择器
.myButton
,则事件将委托给该选择器,而不是委托给“.container”。

您假设选择了容器div,这与您的事件绑定是错误的

如果您要执行以下操作:

$('.container').on('click', function(){/**/});
那么您的
事件.currentTarget
将是容器。
事件。目标可以是以下任何内容


如果添加选择器
.myButton
,则事件将委托给该选择器,而不是委托给“.container”。

您假设选择了容器div,这与您的事件绑定是错误的

如果您要执行以下操作:

$('.container').on('click', function(){/**/});
那么您的
事件.currentTarget
将是容器。
事件。目标可以是以下任何内容


如果添加选择器
.myButton
,则事件将委托给该选择器,而不是委托给“.container”。

您假设选择了容器div,这与您的事件绑定是错误的

如果您要执行以下操作:

$('.container').on('click', function(){/**/});
那么您的
事件.currentTarget
将是容器。
事件。目标可以是以下任何内容


如果添加选择器
.myButton
,事件将委托给该选择器,但不会委托给“.container”。

我认为它正在按预期工作

在上述情况下,事件直接连接到按钮,因此currentTarget和target始终相同

$('.container')。在('click','.myButton',函数(事件){})上
并不意味着事件已附加到div。它只是委派事件。也就是说,事件只会在
.container
之前冒泡,并且事件仍然只附加到
.myButton

案例1:如果事件附加到div

  • 如果单击按钮,则currentTarget将是按钮,target将是div
  • 如果单击div,则currentTarget将是div,target也将是div
  • 示例

    $('.container')。在('click',函数(事件){
    console.log(event.currentTarget);
    console.log(event.target);
    });
    
    div{
    边框:1px实心;
    宽度:150px;
    高度:150像素;
    }
    
    点击我
    点击我
    
    我认为它正在按预期工作

    在上述情况下,事件直接连接到按钮,因此currentTarget和target始终相同

    $('.container')。在('click','.myButton',函数(事件){})上
    并不意味着事件已附加到div。它只是委派事件。也就是说,事件只会在
    .container
    之前冒泡,并且事件仍然只附加到
    .myButton

    案例1:如果事件附加到div

  • 如果单击按钮,则currentTarget将是按钮,target将是div
  • 如果单击div,则currentTarget将是div,target也将是div
  • 示例

    $('.container')。在('click',函数(事件){
    console.log(event.currentTarget);
    console.log(event.target);
    });
    
    div{
    边框:1px实心;
    宽度:150px;
    高度:150像素;
    }
    
    点击我
    点击我
    
    我认为它正在按预期工作

    在上述情况下,事件直接连接到按钮,因此currentTarget和target始终相同

    $('.container')。在('click','.myButton',函数(事件){})上
    并不意味着事件已附加到div。它只是委派事件。也就是说,事件只会在
    .container
    之前冒泡,并且事件仍然只附加到
    .myButton

    案例1:如果事件附加到div

  • 如果单击按钮,则currentTarget将是按钮,target将是div
  • 如果单击div,则currentTarget将是div,target也将是div
  • 示例

    $('.container')。在('click',函数(事件){
    console.log(event.currentTarget);
    console.log(event.target);
    });
    
    div{
    边框:1px实心;
    宽度:150px;
    高度:150像素;
    }
    
    点击我
    点击我
    
    我认为它正在按预期工作

    在上述情况下,事件直接连接到按钮,因此currentTarget和target始终相同

    $('.container')。在('click','.myButton',函数(事件){})上
    并不意味着事件已附加到div。它只是委派事件。也就是说,事件只会在
    .container
    之前冒泡,并且事件仍然只附加到
    .myButton

    案例1:如果事件附加到div

  • 如果单击按钮,则currentTarget将是按钮,target将是div
  • 如果单击div,则currentTarget将是div,target也将是div
  • 示例

    $('.container')。在(