我有一个可拖动的元素和一个可拖放的元素。一旦拖动的项目放在放置区上,我将尝试执行以下jquery伪代码:
if(draggedelement == value){
$(draggedelement).hide();
}
else{
$(draggedelement).revert();
}
其中
revert()
函数将拖动的项目移回其原始位置。如何做到这一点?
附言我知道可拖动的“还原”选项,但是,只有在被拖动的项目没有进入拖放区时,此选项才会激活。
最佳答案
为此,在 .draggable()
上有一些内置选项,将 revert
option设置为'invalid'
,如果未成功将其拖放到可放置对象上,它将返回,如下所示:
$("#draggable").draggable({ revert: 'invalid' });
然后,在
.droppable()
中,使用 accept
option设置对下降有效的内容,例如:$("#droppable").droppable({ accept: '#draggable' });
放开时,与该选择器不匹配的所有内容都会重置you can see a full demo here。如果需要过滤选择器无法提供的选择器,则accept选项还具有一个函数,如下所示:
$("#droppable").droppable({
accept: function(dropElem) {
//dropElem was the dropped element, return true or false to accept/refuse it
}
});