2013-07-31 81 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其他玩笑的高度每個排序更簡單的方法?

簡而言之,沒有。

相關問題