捕获父元素上的事件

发布于 2024-09-04 09:46:09 字数 488 浏览 8 评论 0原文

当单击发生时,window.event 报告树中最低的元素。例如,

<a href="http://server.com/page.aspx" id="anchor">
<span id="span" class="Someclass">
    <strong id="strong">Submit</strong> 
</span> </a>

当您单击上面的链接时,如果您在 BODY 级别有 onclick 监听器,则 window.event 将报告“强”元素被单击。在同一事件中,我如何知道父级实际上是一个“锚”标签,其 href 指向某处?即我正在寻找一种自动方式让我知道主要元素是“锚”而不是“强”元素。 我显然无法执行 window.event.target.parentNode.parentNode 因为这将是手动检查。可能在某个地方我可以跟踪点击事件的“冒泡”。

有人有任何线索吗?

window.event reports the lowest element in the tree when a click happens. e.g.

<a href="http://server.com/page.aspx" id="anchor">
<span id="span" class="Someclass">
    <strong id="strong">Submit</strong> 
</span> </a>

When you click on the above link and if you have onclick listner at BODY level, the window.event will report that "strong" element got clicked. In the same event, how do I know that the parent is actually an "anchor" tag which has href pointing somewhere? i.e. I am looking for an automatic way for me to know the main element is "anchor" and not "strong" element.
I clearly can't do window.event.target.parentNode.parentNode as this will be manual checking. May be somewhere I can follow the "bubbling" of the click event.

Anyone any clue?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

庆幸我还是我 2024-09-11 09:46:09

您可以自动检查祖先。

var element = foo;
while (foo !== document.body) {
    if (foo === someCondition) {
      return foo;
    }
    foo = foo.parentNode;
}
return false;

大多数库都有一个内置的方法来执行此操作。例如,YUI 3 有 Node .ancestor,而 jQuery 有最接近的

You can check the ancestors automatically.

var element = foo;
while (foo !== document.body) {
    if (foo === someCondition) {
      return foo;
    }
    foo = foo.parentNode;
}
return false;

Most libraries have a method to do this built in. e.g. YUI 3 has Node.ancestor, and jQuery has closest.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文