0
我正在使用gwt和gwt-dnd(一個很棒的拖放庫)。確定重疊元素順序
我有一個與另一個重疊的dropTarget(一個div),並且該庫爲下拉操作選擇一個。 其原因是,在的choise與以下標準完成:
確定哪個DropController表示位於所提供的位置
(x, y)
最深DOM後裔 放置目標。
這是正確的降DropTargets,但不是這樣的層次結構:
<body>
<div id="a">
<div id="b">
<div id="c">
<div id="DropTarget_D"></div>
</div>
</div>
</div>
<div id="1" style="position:absolute; z-index: 1; top:0; left:0">
<div id="DropTarget_2"></div>
</div>
</body>
正如你可以從代碼中看到(在帖子的末尾),在這種情況下DropTarget_C被使用(因爲它是「最深」的),即使DropTarget_2顯示在上面。
我怎麼知道,給出兩個組件,哪一個是最頂層的?
這裏的代碼,使的choise:
private int compareElement(Element myElement, Element otherElement) {
if (myElement == otherElement) {
return 0;
} else if (DOM.isOrHasChild(myElement, otherElement)) {
return -1;
} else if (DOM.isOrHasChild(otherElement, myElement)) {
return 1;
} else {
// check parent ensuring global candidate sorting is correct
Element myParentElement = myElement.getParentElement().cast();
Element otherParentElement = otherElement.getParentElement().cast();
if (myParentElement != null && otherParentElement != null) {
return compareElement(myParentElement, otherParentElement);
}
return 0;
}
}
的DropTarget處於從有序列表,其使用該功能被勒令採摘。 如果列表中只包含DropTarget_D和DropTarget_2無一不符合條件,第一個被挑(即使它是由DropTarget_2覆蓋)