Javascript 用部分坐标求DOM元素

Javascript 用部分坐标求DOM元素,javascript,dom,Javascript,Dom,在JavaScript+DOM中,如果鼠标事件发生在一个容器上,但在所有封闭的元素下面,我如何有效地找到位于光标正上方的封闭元素?相同的x,不同的y 显然,getElementFromPoint在这方面对我没有帮助,即使在可用的地方,因为我不会逐像素递增。如果容器中有很多元素,那么在容器中查找所有元素的位置也会非常慢。如果您使用这样的嵌套HTML标记,您可以绕过使用X、Y坐标的需要,转而导航DOM <ul id="theparent" class="aparent"> <l

在JavaScript+DOM中,如果鼠标事件发生在一个容器上,但在所有封闭的元素下面,我如何有效地找到位于光标正上方的封闭元素?相同的x,不同的y


显然,getElementFromPoint在这方面对我没有帮助,即使在可用的地方,因为我不会逐像素递增。如果容器中有很多元素,那么在容器中查找所有元素的位置也会非常慢。

如果您使用这样的嵌套HTML标记,您可以绕过使用X、Y坐标的需要,转而导航DOM

<ul id="theparent" class="aparent">
  <li id="thechild" class="achild">Something</li>
  <li id="anotherchild" class="achild">Something</li>
</ul>
<ul id="anotherparent" class="aparent>
  <div id="yetanotherchild" class="achild">Something else</li>
</ul>
然后你可以为父母做些事情:

$(".aparent").bind("childclicked", function() {
  console.log("a child of mine was clicked");
});

如果像这样使用嵌套的HTML标记,则可以绕过使用X、Y坐标的需要,转而导航DOM

<ul id="theparent" class="aparent">
  <li id="thechild" class="achild">Something</li>
  <li id="anotherchild" class="achild">Something</li>
</ul>
<ul id="anotherparent" class="aparent>
  <div id="yetanotherchild" class="achild">Something else</li>
</ul>
然后你可以为父母做些事情:

$(".aparent").bind("childclicked", function() {
  console.log("a child of mine was clicked");
});

好的,但是我需要在子元素外部处理click。在您的示例中,假设父元素的高度大于子元素的组合高度,并且在同一“行”上可能有多个子元素。那么,您是否确实需要单击父元素的X、Y坐标,或者只是希望触发一个事件?为什么不直接绑定到父级的onclick处理程序?我认为您需要发布一些HTML和JS来澄清。好的,但我需要在子元素之外处理单击。在您的示例中,假设父元素的高度大于子元素的组合高度,并且在同一“行”上可能有多个子元素。那么,您是否确实需要单击父元素的X、Y坐标,或者只是希望触发一个事件?为什么不直接绑定到父级的onclick处理程序?我认为你需要发布一些HTML和JS来澄清。