2009-11-25 93 views
1

我有一个页面,其中有一个可排序的项目列表(一个带有可排序类的div),它最初可以包含一些项目或为空。这些项目位于页面上的另一个列表中,并具有“添加”按钮。点击添加时,它们进入可排序列表。更新jQuery中的排序问题

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

下面是相关的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(); 
}); 

感谢,最大

回答

0

你有没有打过电话刷新? http://docs.jquery.com/UI/Sortable#method-refresh

否则,乍一看我可能会建议作为一个临时的解决办法,以调用destroy(),然后setSortables()每次名单上删除一个项目...

+0

问题解决了!谢谢你。现在要写出“我将来正确读取api”100次。 – 2009-11-25 15:05:15

+0

当我说'那'我的意思是 $(“。sortable”)。sortable('refresh'); 当然:) – 2009-11-25 15:06:04