供调用者参考的 jQuery Event.Target
我不知道我是否忘记了如何执行此操作,或者它是否是一个错误,但我只是无法使用 jQuery 在“click”事件中找到调用者的引用。
我正在执行以下操作:
$(document).ready(function() {
$('#parent a.item').click(doSomething);
});
function doSomething(e) {
// Alerts for demostrational purposes only
alert(e.target);
alert(e.currentTarget);
alert(this);
alert($(this)[0]);
}
所有警报都显示超链接的 href 属性(页面 URL + '#')。
我做错了什么吗?
注释: 使用 jQuery 1.4.2。
I don't know if I have forgotten how to do so or if it's a bug, but I just can't find the caller's reference in the "click" event using jQuery.
I'm doing the following:
$(document).ready(function() {
$('#parent a.item').click(doSomething);
});
function doSomething(e) {
// Alerts for demostrational purposes only
alert(e.target);
alert(e.currentTarget);
alert(this);
alert($(this)[0]);
}
All the alerts show the hyperlink´s href attribute(page URL + '#').
Am I doing something wrong?
Notes:
Using jQuery 1.4.2.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
这是因为您正在发出警报,所以您会看到字符串表示形式(因为
alert()
接受一个字符串)...对于锚点来说,它是href
。例如,您可以这样做:您可以在此处尝试/使用它,请注意
this
和e.target
并不总是相同,如果点击来自子元素,它们将会不同。It's because you're alerting so you're seeing the string representation (since
alert()
takes a string)...which for an anchor is thehref
. You could do this for example:You can try it out/play with it here, note that
this
ande.target
aren't always the same, if the click came from a child element, they'll be different.