這是一個容易再現的問題。選中此的jsfiddle:http://jsfiddle.net/MichielCM/XEC9g/jQuery UI不可見droppbles仍然接受可拖動
<ul id="list1">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
<li>Item 4</li>
<li>Item 5</li>
<li>Item 6</li>
</ul>
<ul id="list2">
<li>Hover me over the items</li>
</ul>
<div id="status"></div>
列表1中存在的拖放目標。它被設置爲最大高度,並且其溢出隱藏。 List2只有一個可拖動的項目。
$("#list1 li").droppable({
greedy: true,
tolerance: "pointer",
over: function(event, ui) {
$("#status").text(
"Hovering over: ".concat($(this).text())
);
}
});
$("#list2 li").draggable();
現在,從list2中拖動的項目時在droppables列表(列表1)中,「上方」事件對於每一個目標被激活。這甚至發生在由於固定高度而不顯示的不可見項目中。這些物品也會觸發'掉落'事件,所以實際上可以將物品放在不可見目標上!
任何優雅的方法來防止這種情況?謝謝。