我有一个可拖动的元素和一个可拖放的元素。一旦被拖动的项目被放置在dropzone我试图执行以下jquery伪装代码:
if(draggedelement == value){ $(draggedelement).hide(); } else{ $(draggedelement).revert(); }
其中revert()函数将拖动的项目移回其原始位置。
如何实现这一点?
P.S。我知道可拖动的“恢复”选项,但这只有激活,如果拖动的项目没有使它到dropzone。
解决方法
有一些内置的选项,在你的
.draggable()
,将
revert
option设置为“无效”,如果它没有成功地放到一个droppable,它会回来,像这样:
$("#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 } });