我已经制作了jQuery代码,当点击并删除其他代码时,它是addclass。
$('.list_qna li a').on('click', function (e) {
$(this).parent('li').addClass('selected').siblings('.selected').removeClass('selected');
e.preventDefault();
});
$('.list_box li a').on('click', function (e) {
$(this).parent('li').addClass('selected').siblings('.selected').removeClass('selected');
e.preventDefault();
});
$('.list_contact li a').on('click', function (e) {
$(this).parent('li').addClass('selected').siblings('.selected').removeClass('selected');
e.preventDefault();
});
<ul class="list_qna">
<li>
<a href="#">list</a>
</li>
<li>
<a href="#">list</a>
</li>
</ul>
<ul class="list_box ">
<li>
<a href="#">list</a>
</li>
<li>
<a href="#">list</a>
</li>
</ul>
<ul class="list_contact ">
<li>
<a href="#">list</a>
</li>
<li>
<a href="#">list</a>
</li>
</ul>
有没有办法让代码对于不同的元素更简单? 请帮忙。
*使用HTML结构更新
答案 0 :(得分:0)
如果您希望所有列表都具有相同的行为,那么最好在所有列表上使用相同的类。这是一个例子:
$('.list_selection li a').on('click', function(e) {
e.preventDefault();
$(this).parent('li').addClass('selected').siblings('.selected').removeClass('selected');
});
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
.list_selection {
list-style: none;
overflow: hidden;
}
.list_selection li {
width: 30%;
float: left;
margin: 5px;
border: 1px solid black;
}
.list_selection a {
display: block;
background: none red;
cursor: pointer;
text-align: center;
}
.list_selection .selected a {
background: none yellow;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul class="list_qna list_selection">
<li>List qna 1<a>select</a></li>
<li>List qna 2<a>select</a></li>
<li>List qna 3<a>select</a></li>
</ul>
<ul class="list_box list_selection">
<li>List box 1<a>select</a></li>
<li>List box 2<a>select</a></li>
<li>List box 3<a>select</a></li>
</ul>
<ul class="list_contact list_selection">
<li>List contact 1<a>select</a></li>
<li>List contact 2<a>select</a></li>
<li>List contact 3<a>select</a></li>
</ul>
同样在JSFiddle。
我的情况是你不能或不想添加这个类,你可以这样使用jQuery Multiple Selector(读取:逗号分隔的选择器):
$('.list_qna li a, .list_box li a, .list_contact li a').on('click', function(e) {
e.preventDefault();
$(this).parent('li').addClass('selected').siblings('.selected').removeClass('selected');
});
选择所有指定选择器的组合结果。