我有 4 个可拖动选项和 3 个可放置桶。当我将一个选项拖到一个可放置对象时,可拖动对象会采用存储桶的值。droppable 还具有“.dropped”类。我需要的两件事:
- 当可拖动对象从存储桶中移除时,它会丢失值
- 当所有可拖动对象从一个可放置对象中删除时,它会丢失 '.dropped' 类
我遇到的问题是 .out(event,ui) 中的 ui 参数为空(根据http://api.jqueryui.com/droppable/#event-out),所以我无法从中获取任何信息它来更新可拖动值或计算可放置对象内的可拖动对象的数量。
我考虑过使用计数器,但有 3 种不同的 droppables。有什么建议吗?
HTML:
<div class="row-fluid">
<div class="drag-option span1 draggable" id="option1">Option 1</div>
<div class="span2"></div>
<div class="drag-option span1 draggable" id="option2">Option 2</div>
<div class="span2"></div>
<div class="drag-option span1 draggable" id="option3">Option 3</div>
<div class="span2"></div>
<div class="drag-option span1 draggable" id="option4">Option 4</div>
</div>
<div class="row-fluid">
<div class="drop-option droppable span4" value="1">1</div>
<div class="drop-option droppable span4" value="2">2</div>
<div class="drop-option droppable span4" value="3">3</div>
</div>
jQuery
// Drag Drop functions
$('.draggable').draggable({containment: "#drag-radio"}).css('cursor','move');
$('.droppable').droppable({
accept: ".drag-option",
hoverClass: "drop-hover",
// Make the drag option inherit the drop value
drop: function(event,ui){
ui.draggable.attr('value',$(this).attr('value'));
$(this).addClass('dropped');
},
// Remove draggable value and droppable .dropped class
out: function(event,ui){
ui.draggable.attr('value','');
$(this).removeClass('dropped');
}
});