在JavaScript + DOM中,如果鼠标事件发生在容器上,但在所有封闭元素下面,我怎样才能有效地找到光标正上方的封闭元素(相同x
,不同{{1} })?
显然y
在这里没有帮助我(即使可用),因为我不会逐像素地上升。如果有很多元素,找到容器中所有元素的位置也会相当慢。
答案 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");
});