我有这种情况:我有可拖放到特殊位置的可拖动对象。我已经准备好了我所描述的功能:http: //jsfiddle.net/8MGmb/
$('.widget').draggable({
handle: '.bar',
helper: 'clone',
cursorAt: { top: 0 },
refreshPositions: true,
start: function () {
$(this).css('visibility', 'hidden')
$('body').addClass('dragging');
},
stop: function () {
$(this).css('visibility', 'visible')
$('body').removeClass('dragging');
},
revert: 'invalid',
zIndex: 100,
});
如果您将鼠标悬停在 .widget div 上,您将看到 .bar 元素可见。这种元素是“处理程序”来启动整个小部件的拖动。开始时,您会注意到 .places 现在以灰色背景可见,并且您正在拖动的元素 .widget div 可以放置在此类位置中。因此,当 .widget 悬停在 .place上时,它会变得更高(带有很酷的 CSS3 过渡)。
然后我们遇到了问题...如果您拖动更内部的 .widgets(位于另一个 .widgets .container 内)会注意到,如果您将其向上移动并将鼠标悬停在 .place 上(它是向上的!)它将向下移动与悬停的 .place 的新高度相同的距离。
最初我在没有助手的情况下进行了配置:http: //jsfiddle.net/fRdks/1/旨在解决问题的一部分,但它并没有通过更内部的 .widgets 解决它(第一个链接!)。
$('.widget').draggable({
handle: '.bar',
cursorAt: { top: 0 },
refreshPositions: true,
start: function () {
$('body').addClass('dragging');
},
stop: function () {
$('body').removeClass('dragging');
},
revert: 'invalid',
zIndex: 100,
});
我想我不能因为 CSS 把助手放在 body 里面......但我需要解决这个问题。您认为这是 jquery 中正确定位的错误吗?
非常感谢。
PD:我直接从 github导入了最新的 CDN jquery.ui 和可拖放的 js 文件,而不是使用 fiddle 默认文件来解决已知的滚动错误(它已经在 master 分支中修复)。