📜  jQuery | event.delegateTarget 属性(1)

📅  最后修改于: 2023-12-03 15:16:47.187000             🧑  作者: Mango

jQuery | event.delegateTarget 属性

在学习 jQuery 事件绑定时,我们可能需要使用到 delegateTarget 属性。它是 jQuery 事件对象 event 中的一个属性,用于获取事件委托的对象。

语法
event.delegateTarget
返回值

event.delegateTarget 属性返回一个表示事件委托的对象。

示例
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>delegateTarget 示例</title>
  <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
</head>
<body>

<div id="outer">
  <button id="inner">Click me!</button>
</div>

<script>
$(document).on('click', '#outer', function(event) {
  console.log(event.delegateTarget); // #outer
});

$(document).on('click', '#inner', function(event) {
  console.log(event.delegateTarget); // #outer
});
</script>

</body>
</html>

上面的示例中,我们绑定了两个点击事件,一个是在 #outer 元素上绑定的,一个是在 #inner 元素上绑定的。在事件处理函数中,我们通过 event.delegateTarget 属性获取事件委托的对象,发现返回的都是 #outer 元素。

这是因为,当我们在 #outer 元素上绑定点击事件时,实际上是委托给了 document 对象。当我们在 #inner 元素上绑定点击事件时,实际上是委托给了 #outer 对象。因此,无论点击哪一个元素,都会实际触发 #outer 上的点击事件。

总结

event.delegateTarget 属性是 jQuery 事件对象中的一个属性,用于获取事件委托的对象。我们通常在事件处理函数中使用它,以便在多个元素上绑定事件时,能够方便地获取委托的对象。