jQuery Delegate - 在事件闭包中查找委托对象
如何访问委托事件处理程序内的委托对象?希望一个例子可以澄清我模糊的问题。
$parent.delegate('a.some_class', 'click', someHandler);
function someHandler(e) {
//how do I find $parent here?
}
这部分取决于我如何构建特定的 .js 文件,其中声明与实现是分开的(是的,我知道的 old skool )。
在 someHandler 中,e.target 和 $(this) 引用 a.some_class 对象。 e 是否也有对 $parent 的引用?如果没有,推荐的查找 $parent 的方法是什么?
感谢您的任何帮助。
How can I access a delegated object inside a delegate event handler? Hopefully an example should clarify my vague question.
$parent.delegate('a.some_class', 'click', someHandler);
function someHandler(e) {
//how do I find $parent here?
}
This is partly down to how I've structured my particular .js file, where declarations are separate from implementation (yeah, old skool I know).
In someHandler, e.target and $(this) refer to the a.some_class object. Does e also have a reference to $parent? If not, what is the recommended way of finding the $parent?
Thanks for any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
更新:有一种获取原始元素的方法 -
e.originalEvent.currentTarget
:DEMO:http://jsfiddle.net/pjHQ6/
原始答案:
我可能会这样做:
UPDATE: There is a way to grab the original element -
e.originalEvent.currentTarget
:DEMO: http://jsfiddle.net/pjHQ6/
Original answer:
I'd probably do it like this:
愚蠢的我。应该更好地阅读 jQuery 文档。
这应该可以做到:
如果使用此委托调用,e.data(在 SomeHandler 中)始终指向 eventData。
希望这对某人有帮助。
Stupid me. Should have read the jQuery docs better.
This should do it:
e.data (in SomeHandler) always points to eventData, if using this delegate call.
Hope this helps someone.
延斯·罗兰是正确的。
要添加的是,e.currentTarget 应该为您提供实际处理事件的 $parent。
有一个错误可以解释为什么 currentTarget 没有按预期方式工作
http://bugs.jquery.com/ticket/11756
Jens Roland is correct.
To add, the e.currentTarget should have given you the $parent where the event is actually handled.
There's a bug that explains why currentTarget is not working the way it's supposed to
http://bugs.jquery.com/ticket/11756