Javascript 使用类切换进行滑动切换
我有一个表格,如果我点击标题,我想折叠下一行。另外,我想更改类,不管表是否折叠 我写道:Javascript 使用类切换进行滑动切换,javascript,jquery,html,collapse,Javascript,Jquery,Html,Collapse,我有一个表格,如果我点击标题,我想折叠下一行。另外,我想更改类,不管表是否折叠 我写道: $('th').click(function(){ var $el = $(this) $(this).closest('tr').next().slideToggle(0) if($(this).closest('tr').next().is(':visible')) { $el.addClass ('opened');
$('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>
脚本
$('th').click(function() {
var $el = $(this);
$(this).closest('tr')
.next()
.slideToggle(0)
.toggleClass('closed');
});
风格
tr {
background-image: url("bullet_toggle_minus.png");
background-repeat: no-repeat;
background-position: left center;
}
tr.closed {
background-image: url("bullet_toggle_plus.png");
background-repeat: no-repeat;
background-position: left center;
}
小提琴:
CSS
您可以与多个类一起使用:
$('th').click(function () {
var $el = $(this)
$el.closest('tr').next().slideToggle(0);
$el.toggleClass('opened closed');
});
记住通过在th
上设置类来设置所有元素的初始状态,如:
<th colspan="2" class="opened">Line 1</th>
第1行
演示:如果您正在寻找类似于您的
slideToggle()
,它的名称为toggleClass()
。如果您正在使用,您将需要一个默认类,另一个用于修改状态。请参见,他需要在所有
元素上设置此初始状态。因此,这应该是一个-1?这并不意味着冒犯您,如果我冒犯了您,请道歉:)@AhmadAssaf无意冒犯:-);但我认为这样的答案是有效的,不会被否决:有理由,有代码,有演示,所以…这只会再次切换类“关闭”,切换两个类不会达到他想要的行为
tr {
background-repeat: no-repeat;
background-position: left center;
}
.opened {
background-image: url("bullet_toggle_minus.png");
}
.closed {
background-image: url("bullet_toggle_plus.png");
}
$('th').click(function () {
var $el = $(this)
$el.closest('tr').next().slideToggle(0);
$el.toggleClass('opened closed');
});
<th colspan="2" class="opened">Line 1</th>