我正在寻找如何执行jQuery UI .sortable(),但没有用户交互的方法。

我有一个可排序的列表,可以通过拖动元素来工作,但是我真正想要的是以编程方式移动元素。将元素从位置5移到位置2,并带有所有漂亮的动画,但没有用户交互。

可以用.sortable()完成吗?

最佳答案

很接近您尝试做的事情:
here

结果可能是:

的HTML

<ul>
<li>test 1</li>
<li>test 2</li>
<li>test 3</li>
<li>test 4</li>
</ul>
<button>Go</button>


Javascript:

$('ul').sortable();
$('button').click(function() {
var li2 = $('li').eq(2);
var li1 = $('li').eq(1);
    var li0 = $('li').eq(0);

var oldOffset = li2.offset();
li0.after( li2 );
var newOffset = li2.offset();

var temp = li2.clone().appendTo('body')
    .css('position', 'absolute')
    .css('left', oldOffset.left)
    .css('top', oldOffset.top)
    .css('zIndex', 1000);
li2.hide();

temp.animate( {'top': newOffset.top, 'left':newOffset.left}, 'slow', function(){
   li2.show();
   temp.remove();
});

});


Jsfiddle

08-07 08:12