jQuery - 将.on事件的委托元素范围传递给event.data对象

时间:2017-10-02 16:47:25

标签: jquery events scope this

我想将已点击的委托DOM元素传递给.on event.data属性...

所以,比如:

$('.parent-element').on('click', '.delegated-element', { self: $(this) }, function(e) {
  console.log(e.data.self);
  // Logs:
  //   $(document)
  // I want:
  //   $('.delegated-element')
});

有没有真正的方法来实现这一目标?

我不担心,但我想我会问。 =)

PS :为了清楚起见,我知道我可以在事件本身内简单地使用$(this),但是对于我想要实现的目标,它将有助于能够通过范围。

1 个答案:

答案 0 :(得分:1)

事件处理程序在点击任何内容之前就已绑定,因此您无需在点击之前获取所点击的元素,并将其作为数据传递,它不会以这种方式工作。< / p>

在事件处理程序中,您可以使用event.target获取单击的元素,或者使用this获取事件处理程序绑定的元素,甚至可以使用event.delegateTarget

简单地说,在事件处理程序被创建为事件数据之前,您只能传入您有权访问的内容,在事件处理程序绑定之前,您无法传递一些不可知的内容,有人触发它。