javascript - event.target.id VS event.currentTarget.id VS this.id

标签 javascript jquery jquery-events

我在下面提供了这个示例代码:

HTML:

<button id = '33' class = "clickme">Click here</button>

JS:

$(document).on("click",".clickme",function(event){ 
    var eti = event.target.id;
    var eci = event.currentTarget.id;
    var ti = this.id;

    alert ("1: " + eti + "   2: " + eci + "   3: " + ti);
}

这 3 个事件,警报相同的值,我认为它也起着相同的作用,但我在 SO 中找到的这个链接中没有:jquery function(event) event.target.id is blank when clicking linked text .

现在我的问题是:

1.)区别使用event.target.id, event.currentTarget.idthis.id?

2.) 我什么时候应该使用 event.target.idevent.currentTarget.idthis.id?

3.)这三者中哪个效果更好?

有没有人知道原因并解释一下?

最佳答案

试试这个例子

<div id="maindiv" onclick="callback(event, this);">
  <span id="span" onclick="callback(event, this);"> SPan</span>
  <p id="p" onclick="callback(event, this);">This is p </p>
</div>

function callback(e, thisObj) {
       console.log('this = ', thisObj.id);
       console.log('target = ', e.target.id);
       console.log('currentTarget = ', e.currentTarget.id);
    }

event.target 是调度事件的对象。 例如:如果您点击 p event.target 将是 pevent.currentTarget 将是 ppcallback 被调用时 event.currentTarget 将是 maindiv callback 将被称为事件冒泡的原因。

`this` refers to `event.currentTarget`

详情看这个
https://developer.mozilla.org/en-US/docs/Web/API/Event/Comparison_of_Event_Targets

这是一个相同的问题,我认为看到这个
Difference between e.target and e.currentTarget

关于javascript - event.target.id VS event.currentTarget.id VS this.id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32456290/

相关文章:

jQuery,复选框已选中

javascript - 使用 jQuery 的 offset() 编写脚本

javascript - 如何仅在 JavaScript/jQuery 中没有默认值时才执行操作?

javascript - 网页上的鼠标行为 – 我不希望标记文本

jquery - 如何在模态对话框中设置输入值?

javascript - "u"元素内的属性

javascript - WordPress 主题选项错误

javascript - 具有自动播放功能的幻灯片以及通过点进行选择的能力

javascript - 基本的javascript代码布局

javascript - 我想在倒数计时器停止后打开一个 div