Skip to content

Instantly share code, notes, and snippets.

@eijik
Created August 14, 2011 14:01
Show Gist options
  • Save eijik/1144893 to your computer and use it in GitHub Desktop.
Save eijik/1144893 to your computer and use it in GitHub Desktop.
set rowspan to malti column by jquery in haml
%table
%tbody
%tr
%td.row_span3
%td.row_span2
%td.row_span1
:javascript
$(function(){
table_rowspan('row_span',3);
});
var table_rowspan = function(class_name,col_level,start_row,range_rows){
if (range_rows < 2 ) return false;
var col_name = class_name + col_level;
if (start_row == undefined) start_row = 0;
if (range_rows == undefined) range_rows = $('.' + col_name).size();
var current_row = start_row;
var rest_rows = range_rows;
do {
var merged_rows = 1;
while (merged_rows < rest_rows){
var check_row = current_row + merged_rows
if($('.' + col_name + ':eq(' + current_row + ')').children().text() == $('.' + col_name + ':eq(' + check_row + ')').children().text()){
$('.' + col_name + ':eq(' + check_row + ')').hide();
merged_rows += 1;
}else{
break;
}
};
$('.' + col_name + ':eq(' + current_row + ')').attr('rowSpan',merged_rows);
if (col_level > 1){
table_rowspan(class_name,col_level - 1,current_row,merged_rows);
}
current_row += merged_rows;
rest_rows -= merged_rows;
}while (current_row < start_row + range_rows);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment