jQueryUI的可拖动/可弃得到最高下降DIV
问题描述:
我有,最好由这个小提琴,我偶然发现说明了一个问题:jQueryUI的可拖动/可弃得到最高下降DIV
这就是,当我draggind一个对象,并悬停在其可弃即使它们之间存在分隔,也会检测到该分隔。我想避免这种情况。
从我所了解的阅读文档中,没有现成的解决方案来做到这一点,但也许一个选项可能是得到'真正的'最上面的div在拖动元素被删除并避免行动,如果它是溢出格。 (但这只是一个想法)。
换句话说,说我有一个投掷的DIV称为可放开-DIV,一个div是在它的上面叫上顶级的非可弃-DIV ...我可以检测到这种在下降功能?
dropped: function(ev, ui){
// somehow detect if the first target to receive the draggable event
// is #on-top-non-droppable-div, and don't do anything if it is.
}
答
也许这就是适合您的需要:
$(function() {
$('.drag').draggable();
$('.drop, .overlay').droppable({
tolerance: 'touch',
hoverClass: 'drop-hover',
accept: '.drag',
drop: function (event, ui) {
if ($(this).hasClass('overlay')) {
ui.draggable.draggable({
revert: true
});
} else {
ui.draggable.draggable({
revert: "invalid"
});
}
}
});
});
这里例如设置tolerance: 'pointer',
嘿,感谢这一点。我不愿意在叠加层上设置droppables,因为其中有很多...更糟糕的是,有些应该让可拖动的通过。这是一个可行的解决方案,但我认为最重要的方面是减轻重量。 – alemangui
你可以使用'document.elementFromPoint',这是给你的想法:http://jsfiddle.net/JSFU4/10/但是,然后行为可能不完全是你所期待的。无论如何,即使有很多元素,将可插入插件设置为.overlay也不应该成为问题。 –