2013-07-31 80 views
1

我使用jQuery UI Sortable对挑逗者进行排序。问题在于,有时候戏弄者包括不同数量的文本。 (红色是文本。)所以,如果有玩笑的多条线路出现这种情况: 但我想是这样的: 的玩笑应该有相同的高度,在该行的最高传情。给他们所有的高度是没有选择的。每行最大计数的玩笑总是3.jQuery UI一行中的可排序项目应具有相同的高度

有没有比测量每行最高挑逗的高度并在每次排序后用jQuery调整其他挑逗者的高度更简单的方法?

回答

0

基于DevIshOnes回答这是我的解决方案:

var heights = []; 
var tallest = []; 
$('.teaser:not(.ui-sortable-placeholder)').each(function() { 
    $(this).height('auto'); 
    heights.push($(this).height()); 
}); 
while (heights.length != 0) { 
    var line = heights.splice(0,3); 
    line.sort(function(a,b){return b-a}); 
    tallest.push(line[0]); 
} 
$('.teaser').each(function (i) { 
    $(this).height(tallest[Math.floor(i/3)]); 
}); 

要获得各行中最高传情我产生tallest阵列,后来我用tallest[Math.floor(i/3)]以获得每个传情正确的高度值。

1
$(function() { 
    $('li').addClass('teaser'); 
    $('.sortable').sortable(); 
    $('#fixHeights').click(function() { 
     var heights = []; 
     $('.teaser').each(function() { 
      heights.push($(this).height()); 
     }); 
     heights.sort(); 
     var tallest = heights.pop(); 
     alert(tallest); // optional 
     $('.teaser').each(function() { 
      $(this).height(tallest); 
     }) 
    }); 
}); 

jsFiddle demo!

难道还有比测量每线最高传情 的高度和 后调整使用jQuery其他玩笑的高度每个排序更简单的方法?

简而言之,没有。

相关问题