2017-01-02 15 views
0

私はいくつかのセルを持つテーブルを持っています。私が(jqueryで)セルをクリックすると、4つの部分に分割されます(時間間隔、各部分は15分を表します)。Jquery divide table cell

// example 
<table> 
    <tr> 
     <td></td> 
     <td></td> 
     <td> 
     <div class="divider"> 
      <span></span> 
      <span></span> 
      <span></span> 
      <span></span> 
     </div> 
     </td> 
     <td></td> 
    </tr> 
</table> 

これは問題なく動作していますが、すべてのラベル(4個)の幅を計算します。画面がリズイズされると、セルの幅が変化しています

たとえば、クリックされたセルの幅が17ピクセルの場合です。 私は幅

// span 1: 4px  
// span 2: 5px  
// span 3: 4px  
// span 4: 4px 
// total: 17px  

次したいが、セルは22pxの幅を持っている場合は、次のような結果が

// span 1: 6px  
// span 2: 5px  
// span 3: 6px  
// span 4: 5px 
// total: 22px 

をdisiredされ、私はMODと割ると、いくつかの計算を試みたが、得ることができませんでしたその結果

@edit | JSFiddleコード が追加されました。このファイルでは、幅は静的で22pxに設定されています。 https://jsfiddle.net/cymvfmmb/

+0

共有フィドル完全なコードは、私たちはより良い助けることができるように、ソートのカスタムを作成することができます。 –

+0

私はフィーリングのサンプルコードを追加しました – Bham

+0

jquery resizeイベントを使用して、実行時にセルの幅を計算します。 –

答えて

0

幅に基づいてセルを等しくまたはそれ以上に分割する計算。

var n=25; 
var length=n; 
var arr=[0,0,0,0]; 

for(var i=0;i<length;i++){ 
for(var j=0;j<arr.length;j++){ 
    if(n){ 
    arr[j]+=1; 
    n=n-1; 
    } 
} 

} 
console.log(arr); //[7, 6, 6, 6] 
+0

それは働いている、注文だけ異なる必要があります。初めてgrep te smallestする必要があります。次に、最大、最小、最大を確認する必要があります。だから[7,6,6,6]は[6,7,6,6]にする必要があります – Bham

0

にはどうすれば

// Algorithm needs to be 
// low | highest | lowest | highest 
[7,6,6,6] would become [6,7,6,6] 

// custom sorting the array 
    arr.sort(function(x, y){ 
     if(y < x){ 
      return x - y; 
     } 
    });