通过将 droppable 小部件的 greedy 设置为 true,只有最顶层的元素应该响应 drop 事件。这里真的没有复杂性,但我就是无法让它工作。这就是我没有太多工作要做的全部:
CSS:
.page{
position: absolute;
width: 150px;
height: 150px;
left: 0px;
top: 0px;
text-align: center;
background: #F0FFFF;
border: 1px solid #89B;
}
HTML:
<div class = 'page' id = 'page1'> page1 </div>
<div class = 'page' id = 'page2'> page2 </div>
<div class = 'page' id = 'page3'> page3 </div>
JS:
document.ready = function(){
$('.page').draggable()
$('.page').droppable({
greedy: true,
drop: function( event, ui ){
console.log( 'assert drop once')
}
})
}
现在发生的事情是所有放置在元素上的元素都在响应放置事件。由于要保留的代码很少,我不知道如何诊断。