javascript - 显示/隐藏 JavaScript 时出现问题

标签 javascript jquery

我将有一个 ExpressionEngine 博客,它将在页脚中放置用户设计的内容 block 。但是,它一次只会显示一个。

我的 HTML 看起来像这样:

<ul class="footernav">
    <li class="first"><a class="active" href="#">Get in touch</a></li>
    <li><a href="#">Interested in joining?</a></li>
    <li><a href="#">Feedback</a></li>
    <li><a href="#">Link 4</a></li>
</ul>
<div class="copy gutters show">
    <p>Lorem Ipsum</p>
</div>
<div class="copy gutters hide">
    <p>Lorem Ipsum</p>
</div>
<div class="copy gutters hide">
    <p>Lorem Ipsum</p>
</div>

我想根据单击的链接将显示类切换为隐藏类。不知道我怎样才能做到这一点。它必须足够灵活,能够处理 N 个内容 block ——因为它们将由用户在 ExpressionEngine 中定义。

我对 JavaScript 还很陌生,所以我真的很感激任何关于如何实现这一目标的见解或解决方案。

最佳答案

我认为这适合您的结构:

// Cycle through each link in our ul.footernav element
$(".footernav a").each(function(i,o){
  // Attach click-logic to each link
  $(this).click(function(e){
    // Prevent page from bouncing, reloading, etc.
    e.preventDefault();
    // Add .active class to this, but remove from all other links
    $(this).addClass("active").closest("li").siblings("li").find("a").removeClass("active");
    // Show any DIV having class .copy and same index as clicked link
    // meaning, clicking the second link will show the second div
    $("div.copy:eq("+i+")").show().siblings("div.copy").hide();
  });
});

在线演示:http://jsbin.com/ekecu

关于javascript - 显示/隐藏 JavaScript 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2074010/

相关文章:

c# - 从 Controller 动态返回 javascript 函数并将其传递给 cshtml

javascript - 单击另一个选项卡时停止视频

jQuery - 删除 HTML 中的自闭合标签

javascript - 将 Angular Js 与 JQuery 问题一起使用

javascript - 选择标签的 document.getElementById 在 IE 中给出对象错误

javascript - 某些 Javascript 在 64 位 Internet Explorer 中无法正常运行

javascript - 从包含的 php 文件中刷新查询结果

javascript - 验证某些用户的 Passport 策略

javascript - 如何使用 mediaelement、js 脚本在 html 播放器中添加自定义按钮

javascript - 使用 JSON.parse 评估 Javascript 数据结构时出错