jquery可拖动选项

我希望当我单击按钮时,可拖动对象恢复到其原始位置。 我使用’destroy’选项,但它似乎没有用。 它会禁用拖动但不会恢复到原始位置。

有人可以帮忙吗?

编辑部分:

$('#Zoom').toggle(function() { $("#draggable").draggable({});}, function() { $("#draggable").draggable('destroy');}); 

这是我用来启用拖动的切换按钮。 destroy选项仅禁用拖动,并且不会将对象还原回原始位置。

这也是我想让对象回到原来位置的按钮:

 nextImg.addEventListener('click', function() {img.setAttribute("src", "img"+(++imgnum)+".jpg");}, false); 

这个怎么样?

  

我做了一些假设,比如idI为“nextImg”的nextImg对象,这样我就可以使用jQuery绑定click事件(在javascript事件绑定过程中少一步?)我也假设你不要我真想破坏拖拽function。

拖动停止时(可选延迟)执行还原,而不是单击。

 $(document).ready(function() { var originalTop = $('#draggable').position().top; var originalLeft = $('#draggable').position().left; $('#Zoom').toggle( function() { $("#draggable").draggable({});}, function() { $("#draggable").draggable('destroy'); $('#draggable').position().top = originalTop; $('#draggable').position().left= originalLeft; }); }); 

编辑:我很确定这会解决问题:

 //reposition the draggable after it has finished $(".selector").draggable({ stop: function(e,ui) { ui.instance.element.css("left","0px"); ui.instance.element.css("top","0px"); } }); 
 function revertable($drag){ $drag.data({ top: $drag.css('top'), left: $drag.css('left') }) $('.'+$drag.attr('id')+'.revert').data({ revert: '#'+$drag.attr('id') }) .on('click',function(){ var $rev = $( $(this).data('revert') ); $rev.css({ top: $rev.data('top'), left: $rev.data('left') }); }) } 

//只需在create事件中调用该函数

 var $drag = $('#my_draggable'); //your element $drag.draggable({ create: revertable($drag) }); 

//测试它:更改顶部/左侧值,刷新,单击按钮以查看它是否有效。

 
Drag Me Around

…测试,应该适用于任何元素(需要jquery 1.7 for .on()函数)

默认情况下,Revert选项设置为false,您必须将其设置为true。

 $("#draggable").draggable({ revert: true }); 

这应该实际上……