У меня есть таблица, и я бы хотел свернуть следующую строку, если я нажму на заголовок. Кроме того, я хотел бы изменить класс, была ли таблица свернута или нет.slideToggle with classToggle
Я написал:
$('th').click(function(){
var $el = $(this)
$(this).closest('tr').next().slideToggle(0)
if($(this).closest('tr').next().is(':visible')) {
$el.addClass ('opened');
$el.removeClass('closed');
} else {
$el.removeClass ('opened');
$el.addClass ('closed');
}
});
мне интересно, если я могу сделать лучше с JQuery?
Вот HTML код:
<table>
<tr>
<th colspan="2">Line 1</th>
</tr>
<tr>
<td>data</td>
<td>data</td>
</tr>
<tr>
<th colspan="2">Line 2</th>
</tr>
<tr>
<td>date</td>
<td>data</td>
</tr>
</table>
И CSS:
.opened {
background-image: url("bullet_toggle_minus.png");
background-repeat: no-repeat;
background-position: left center;
}
.closed {
background-image: url("bullet_toggle_plus.png");
background-repeat: no-repeat;
background-position: left center;
}
Если вы ищете что-то похожее на ваш 'slideToggle()', его называют 'toggleClass()'. Если вы используете [toggleClass()] (http://api.jquery.com/toggleclass/), вам понадобится один ** по умолчанию ** класс, а другой для изменения состояния – JofryHS
см. Http://jsfiddle.net/arunpjohny/7xr2Lvpk/1/ –