jQuery 菜单活动链接

发布于 2024-08-26 06:17:42 字数 738 浏览 3 评论 0原文

我正在尝试制作一个 jquery 菜单,当我单击其中一个链接(无需重新加载页面)时,它将其类更改为“活动”,并在我单击另一个链接时删除此类。

这是我的代码:

<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>

有人可以告诉我为什么我的代码不起作用以及如何修复它吗? 谢谢 :)

I am trying to make a jquery menu that when I click on one of the links (without reloading the page), it changes its class to "active" and removes this class when I click on another link.

here is my code :

<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>

Can someone tell me why my code is not working and how to fix it?
Thanks :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

椵侞 2024-09-02 06:17:42

原始代码失败是因为此语法无效:

.children().("a")

代码的其余部分也存在一些基本缺陷。请尝试这样做:

$(function () {
  $('.buttons a').click(function (event) {
    var $target = $(event.target);
    var $li = $target.parent();
    $li.addClass('selected').siblings().removeClass('selected');
  });
});

在此更正中,selected 类应用于

  • (而不是 ),以给出您在编写 CSS 时具有更好的灵活性。
  • The original code failed because this syntax is invalid:

    .children().("a")
    

    The rest of the code also had some fundamental flaws. Try this instead:

    $(function () {
      $('.buttons a').click(function (event) {
        var $target = $(event.target);
        var $li = $target.parent();
        $li.addClass('selected').siblings().removeClass('selected');
      });
    });
    

    In this correction, the class selected is applied to an <li>—not an <a>—to give you better flexibility while writing CSS.

    空气里的味道 2024-09-02 06:17:42

    我会改变

    $(".buttons").children().toggleClass("selected").siblings().removeClass("selected");
    

    $("this").addClass('selected').siblings().removeClass("selected");
    

    I would change:

    $(".buttons").children().toggleClass("selected").siblings().removeClass("selected");
    

    to

    $("this").addClass('selected').siblings().removeClass("selected");
    
    ぶ宁プ宁ぶ 2024-09-02 06:17:42
    $(document).ready(function() {
      $(".buttons a").click(function() {
        $(".buttons a").removeClass("selected");
        $(this).addClass("selected"); 
      });
    });
    
    $(document).ready(function() {
      $(".buttons a").click(function() {
        $(".buttons a").removeClass("selected");
        $(this).addClass("selected"); 
      });
    });
    
    ~没有更多了~
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文