我正在尝试创建一个jquery菜单,当我点击其中一个链接(不重新加载页面)时,它会将其类更改为“active”并在我点击另一个链接时删除该类。
这是我的代码:
<script type="text/javascript">
$(document).ready(function() {
$(".buttons").children().("a").click(function() {
$(".buttons").children().toggleClass("selected").siblings().removeClass("selected");
});
});
</script>
<ul class="buttons">
<li><a class="button" href="#">Link1</a></li>
<li><a class="button" href="#">Link2</a></li>
<li><a class="button" href="#">Link3</a></li>
<li><a class="button" href="#">Link4</a></li>
</ul>
有人可以告诉我为什么我的代码无法运行以及如何修复它? 谢谢:))
答案 0 :(得分:5)
原始代码失败,因为此语法无效:
.children().("a")
其余代码也存在一些根本性缺陷。试试这个:
$(function () {
$('.buttons a').click(function (event) {
var $target = $(event.target);
var $li = $target.parent();
$li.addClass('selected').siblings().removeClass('selected');
});
});
在此更正中,课程selected
适用于<li>
- 而不是<a>
- 以便在编写CSS时为您提供更好的灵活性。
答案 1 :(得分:2)
我会改变:
$(".buttons").children().toggleClass("selected").siblings().removeClass("selected");
到
$("this").addClass('selected').siblings().removeClass("selected");
答案 2 :(得分:1)
$(document).ready(function() {
$(".buttons a").click(function() {
$(".buttons a").removeClass("selected");
$(this).addClass("selected");
});
});