单击每个LI时如何更改UL类名(menu1)?
例如,
点击" tab1",将UL的班级名称更改为" menu1"。
点击" tab2",将UL的班级名称更改为" menu2"。
点击" tab3",将UL的班级名称更改为" menu3"。
这个代码是我试过的。
<ul class="tab menu1">
<li class="tab1">t1</li>
<li class="tab2">t1</li>
<li class="tab3">t1</li>
</ul>
<script>
$('.tab1').click(function(){
$('.tab').addClass('menu1');
$('.tab').removeClass('menu2');
$('.tab').removeClass('menu3');
});
$('.tab2').click(function(){
$('.tab').removeClass('menu1');
$('.tab').addClass('menu2');
$('.tab').removeClass('menu3');
});
$('.tab3').click(function(){
$('.tab').removeClass('menu1');
$('.tab').removeClass('menu2');
$('.tab').addClass('menu3');
});
</script>
更简单的方法是让我的代码更简单吗?
答案 0 :(得分:2)
首先,将data-*
属性添加到HTML
<ul class="tab menu1">
<li class="tab1" data-trigger-class="menu1">t1</li>
<li class="tab2" data-trigger-class="menu2">t1</li>
<li class="tab3" data-trigger-class="menu3">t1</li>
</ul>
然后,让你的点击处理程序(你只需要一个)使用它们
$('.tab li').click(function(){
$('.tab').removeClass('menu1 menu2 menu3');
$('.tab').addClass($(this).attr('data-trigger-class'));
});
答案 1 :(得分:2)
一种有效的方法是使用li元素的索引来指定菜单类。
HTML:
<ul class="tab">
<li class="tabListItem">t1</li>
<li class="tabListItem">t1</li>
<li class="tabListItem">t1</li>
</ul>
JS:
$('.tabListItem').click(function(){
$('.tab').removeClass().addClass('tab').addClass('menu'+($(this).index()+1));
});