jQuery菜单活动链接

时间:2010-03-26 03:46:19

标签: javascript jquery menu hyperlink anchor

我正在尝试创建一个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>

有人可以告诉我为什么我的代码无法运行以及如何修复它? 谢谢:))

3 个答案:

答案 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"); 
  });
});