jQuery-传递一个.on事件';委托要素';event.data对象的作用域
我想将已单击的委派DOM元素传递到jQuery-传递一个.on事件';委托要素';event.data对象的作用域,jquery,events,scope,this,Jquery,Events,Scope,This,我想将已单击的委派DOM元素传递到事件上的。数据属性 比如说: $('.parent-element').on('click', '.delegated-element', { self: $(this) }, function(e) { console.log(e.data.self); // Logs: // $(document) // I want: // $('.delegated-element') }); 有什么真正的方法可以做到这一点吗 我不担心,但
事件上的。数据
属性
比如说:
$('.parent-element').on('click', '.delegated-element', { self: $(this) }, function(e) {
console.log(e.data.self);
// Logs:
// $(document)
// I want:
// $('.delegated-element')
});
有什么真正的方法可以做到这一点吗
我不担心,但我想我会问的
PS:我知道我可以简单地在事件本身中使用$(this),但为了实现我的目标,它将有助于传递范围。事件处理程序在单击任何内容之前绑定,因此您无法在单击之前获取单击的元素,并将其作为数据传递,这样不行
在事件处理程序内部,您可以使用event.target
获取已单击的元素,或者使用this
将事件处理程序绑定到的元素,甚至可以获取委托的目标
简单地说,在事件处理程序被创建为事件数据之前,您只能传入您有权访问的内容。在绑定事件处理程序并有人触发它之前,您不能传入未知的内容。您是否尝试过e.target?@Dream\u Cap-我正在寻找event.data的作用域。我的问题可以通过其他方式解决,我只是想知道我所要求的是否可能。“在单击任何东西之前,事件处理程序是绑定的”-我可以强制它在单击事件中的某个位置更新吗?如果你可以“更新”,或触发事件或其他什么,这并不重要,在有人实际单击之前,您仍然无法获取已单击的元素。当然,您可以获得与类.delegated element
匹配的所有元素,但在创建事件处理程序之前,您无法知道是哪一个触发了事件处理程序。我理解。触发事件时将触发单击处理程序。在实例化单击处理程序时,将创建并分配传递给.on
函数的数据对象。鸡不能先于蛋,基本上。。。哦,太遗憾了。谢谢是的,就是这样。在有人实际单击之前,您不知道单击的元素是什么。