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 });
这应该实际上……