[英]jQuery UI Draggable and Droppable, reverting and accepting elements
我一直在试验这段代码: jsfiddle它突出显示并让你知道哪些盒子你可以放下盒子,但它不接受任何droppables。 有谁知道我怎么能改变这个代码接受一个droppable而不是它只是恢复?
$(".DragItem").draggable({
revert: true,
helper: "clone"
});
$(".DropItem").droppable({
tolerance: "touch",
over: function (event, ui) {
var dropItem = $(this);
var dragItem = $(ui.draggable);
var valid = String(dropItem.data("id")).indexOf(dragItem.data("id")) > -1;
if (valid) {
dropItem.addClass("DropTargetValid");
} else {
dropItem.addClass("DropTargetInvalid");
}
},
out: function (event, ui) {
var dropItem = $(this);
dropItem.removeClass("DropTargetValid");
dropItem.removeClass("DropTargetInvalid");
},
deactivate: function (event, ui) {
var dropItem = $(this);
dropItem.removeClass("DropTargetValid");
dropItem.removeClass("DropTargetInvalid");
}
});
您需要将clones()附加到正确的div并在它们不匹配时还原它们,首先accept:
所有可拖动元素然后在drop:
部分处理revert。 此外,您还需要为要克隆和拖动的元素创建并保存原点位置,以便将其恢复到原始位置,然后将其从页面中删除。
这是finall脚本演示:
玩得开心!
我会从这样的事情开始:
样品 :
$(".drop1").droppable({
accept: '.drag1',
activeClass: 'DropTargetValid',
drop: function (ev, ui) {
$(ev.target).append(ui.draggable.clone());
}
});
---编辑---
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.