在jquery中更新sortables的问题

时间:2009-11-25 11:05:22

标签: javascript jquery jquery-ui jquery-ui-sortable

我有一个页面,其中有一个可排序的项目列表(一个带有“可排序”类的div),它最初可能包含一些项目或为空。这些项目位于页面上的另一个列表中,并有一个“添加”按钮。单击添加后,它们将进入可排序列表。

当页面加载列表中的某些项目时,排序有效,但随后添加到列表中的项目不可排序,即当我点击其可拖动元素时没有任何反应。

这是相关的javascript:最初我用setSortables只在页面加载时调用它,但是每次将项目移动到可排序列表时我都会再次调用它。

//move this item into the sortable list
function addAssetToQuestion(asset_id){
  asset_div = jQuery("#asset_"+asset_id);
  asset_div.slideUp("fast", function(){ 
    jQuery("#assets").append(asset_div);
    asset_div.find(".add-asset-button").hide();
    asset_div.find(".remove-asset-button").show();
    asset_div.find(".name").addClass("pointerhand");     
    asset_div.slideDown("fast");
    setSortables();
  });
}

//set up the sortable list
function setSortables(){
  $(".sortable").sortable({
    handle: '.name',
    start: function() { jQuery(".audioplayer-container").hide(); },
    stop:  function() { jQuery(".audioplayer-container").show(); }
  });
}

jQuery(document).ready(function(){
  setSortables();
});

谢谢,最大

1 个答案:

答案 0 :(得分:0)

你试过调用刷新吗? http://docs.jquery.com/UI/Sortable#method-refresh

否则,乍一看我可能建议作为临时修复来调用destroy()然后每次在列表中删除项目时调用setSortables()...