我有一个可拖动的元素和一个可拖放的元素。一旦拖动的项目放在放置区上,我将尝试执行以下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
  }
});​

09-25 19:49