【发布时间】:2015-01-26 15:21:28
【问题描述】:
我有一个可拖动元素 (.item) 和放置区域 (.droparea) 的列表。
<div class="sortable">
<div class="droparea" id="div0">Drop area 0</div>
<div class="item" id="item1">Item 1</div>
<div class="droparea" id="div1">Drop area 1</div>
<div class="item" id="item2">Item 2</div>
<div class="droparea" id="div2">Drop area 2</div>
<div class="item" id="item3">Item 3</div>
<div class="droparea" id="div3">Drop area 3</div>
</div>
我的目标是允许将元素放置在放置区域中,不包括其周围区域(例如,#item1 可以放置在 #div2 和 #div3 中,但不能放置在 #div0 和 #div1 中) .
我尝试使用draggable revert 选项拒绝丢弃。每次发生放置时,我都会将当前放置区域与拖动元素周围的放置区域(开始拖动时存储)进行比较。如果发生匹配,则丢弃丢弃,否则将被接受。
revert: function(valid)
{
if(valid)
{
// compare dropping area with forbidden areas
if(dropped==prevDrop || dropped==nextDrop)
{
console.log('invalid drop');
return true;
}
else
{
console.log('valid drop ' + dropped.attr('id'));
return false;
}
}
else
{
return true;
}
}
很遗憾,它不起作用:总是接受掉落。有什么想法吗?
【问题讨论】:
标签: jquery-ui jquery-ui-draggable jquery-ui-droppable