通过部分坐标查找DOM元素

时间:2011-03-05 07:38:48

标签: javascript dom

在JavaScript + DOM中,如果鼠标事件发生在容器上,但在所有封闭元素下面,我怎样才能有效地找到光标正上方的封闭元素(相同x,不同{{1} })?

显然y在这里没有帮助我(即使可用),因为我不会逐像素地上升。如果有很多元素,找到容器中所有元素的位置也会相当慢。

1 个答案:

答案 0 :(得分:0)

如果您使用这样的嵌套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>

您可以使用jquery绑定到每个achild div的onclick事件,然后找到它的直接父级:

$(".achild").bind("click", function() {
  $(this).parent().trigger("childclicked");
});

然后你可以为父母做点事情:

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