我正在寻找一种方法来触发事件从恢复状态,如果某些事情没有验证,例如,如果元素存在,它将从另一个列表创建它,但如果它已经存在,它应该转到else并将元素返回到它原来的位置:
$( "#catalog ul" ).droppable({ tolerance: 'fit',activeClass: "ui-state-default",hoverClass: "ui-state-hover",accept: ":not(.ui-sortable-helper)",drop: function( event,ui ) { //check if already exists if($(this).find("#"+$(ui.draggable).attr("id")).length==0){ $( "<li id="+$(ui.draggable).attr("id")+"></li>" ).text( ui.draggable.text() ).appendTo( this ) .draggable({ revert: 'invalid',stop: function(){ $(this).draggable('option','revert','invalid'); } }).droppable({ greedy: true,tolerance: 'touch',drop: function(event,ui){ ui.draggable.draggable('option',true); } }); }else{ //want to make the object go back by setting true to revert return false; } } })
解决方法
谢谢Kenji,这确实有效:
ui.draggable.draggable('option',true);
我一直在努力争取一个早上,直到找到你的帖子,谢谢