2017-11-11 143 views
0

我想将列表中的所有元素重置为初始位置。这是我的例子Jquery UI Droppable重置jquery可拖动元素

这是我复位功能

$(".reset").click(function() { 
     // Code to reset all elements 
}); 

我该怎么办呢?

+0

您一定是在骗我! '//重置所有元素的代码'是一个注释,而不是js代码,并且你所做的只是将一个点击事件与一个基本的绑定到'reset'类的元素 –

+0

而对于“你的”例子jqueryUI),你可以[destroy](http://api.jqueryui.com/droppable/#method-destroy)这个可拖拽的功能,并将元素返回到原始状态,并且你可以在原始元素上再次定义droppable ) –

+0

Upvote并接受我的答案,如果它可以帮助你,所以其他人知道这是正确的答案,并帮助他们。 –

回答

0

您可以使用下面的代码:

第一组订单属性项

// This code used for set order attribute for items 
var numberOfItems = $("#gallery").find('li').length; 
$.each($("#gallery").find('li'), function(index, item) { 
    $(item).attr("order", index); 
}); 

变化recycleImage功能

function recycleImage($item) { 
    $item.fadeOut(function() { 
     $item 
      .find("a.ui-icon-refresh") 
      .remove() 
      .end() 
      .css("width", "96px") 
      .append(trash_icon) 
      .find("img") 
      .css("height", "72px") 
      .end() 
      //.appendTo($gallery)     
      .fadeIn(); 
      // Add to old palce 
      addToOlderPlace($item); 
    }); 
} 

添加addToOlderPlace功能

// This function used for find old place of item 
function addToOlderPlace($item) { 
    var indexItem = $item.attr('order'); 
    var itemList = $("#gallery").find('li'); 
    if (indexItem === numberOfItems - 1) 
     $("#gallery").append($item); 
    else if (indexItem === "0") 
     $("#gallery").prepend($item); 
    else 
     $(itemList[indexItem - 1]).after($item); 
} 

Online demo (fiddle)