2016-11-13 2 views
1

У меня есть таблица с событием двойного щелчка на каждой из строк. Когда я дважды нажимаю на любую строку, он отображает другую строку под названием «.matching». Кроме того, я также хочу создать столбец rowspan, если отображается скрытая строка «.matching». Ниже показан мой PHP часть:Столбец rowspan с использованием jquery

<table> 
<tr ondblclick="rowdoubleclick(this);"> 
    <td>...</td> 
    <td>...</td> 
    <td class="lastcolumn">Rowspan is here</td> 
</tr> 
<tr class="matching" style="display:hidden;"> 
    <td colspan="2">Hidden row shows here</td> 
</tr> 
</table> 

И это мой JQuery:

function rowdoubleclick(e) { 
    var tablerow = $(e).closest('tr'); 
    var rowammend = $('.lastcolumn'); 
    var matching = $(e).closest('tr').next('tr.matching'); 

    if(matching.is(":hidden")) { 
     tablerow.attr('rowspan','2').css({'border-bottom':'transparent'}); 
     matching.slideToggle("fast"); 
     rowammend.attr('rowspan','2'); 
    } 
    else { 
     tablerow.css({'border-bottom':'1px solid #939393'}); 
     matching.hide(); 
     rowammend.attr('rowspan','1'); 
    } 
} 

Проблема с этим кодом, когда я дважды щелкнуть по любой строке, он создает RowSpan на другую строку. Или, другими словами, он создает все строки по всем строкам в таблице. Как добавить конкретный столбец столбцов в это событие события двойного щелчка?

ответ

1

Попробуйте это, Вы должны найти lastcolumn из щелкнули строки

function rowdoubleclick(e) { 
    var tablerow = $(e).closest('tr'); 
    // here you should find from clicked row and not from each row 
    var rowammend = $(e).find('.lastcolumn'); 
    var matching = $(e).closest('tr').next('tr.matching'); 

    if(matching.is(":hidden")) { 
     tablerow.attr('rowspan','2').css({'border-bottom':'transparent'}); 
     matching.slideToggle("fast"); 
     rowammend.attr('rowspan','2'); 
    } 
    else { 
     tablerow.css({'border-bottom':'1px solid #939393'}); 
     matching.hide(); 
     rowammend.attr('rowspan','1'); 
    } 
} 
Смежные вопросы