【问题标题】:Trouble with show/hide JavaScript显示/隐藏 JavaScript 的问题
【发布时间】:2010-01-15 18:59:30
【问题描述】:

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

我的 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 个内容块——因为它们将由用户在 ExpressionEngine 中定义。

我对 JavaScript 非常陌生,因此我非常感谢任何关于我如何完成此任务的见解或解决方案。

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    我认为这适用于您的结构:

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

    【讨论】:

    • 感谢您的帮助!这还不工作,但我开始看到它。是否不需要某种特定的标识符来告诉它哪个链接应该显示哪个内容块?有什么办法可以解决我的问题吗?
    • 未知,“标识符”是链接出现的顺序。第一个链接将切换第一个 div。第二个链接将切换第二个 div 等。这有效 - 检查解决方案底部的“在线演示”。
    • 嗯。完全正确,它似乎完全按照您的 JsBin 示例的需要工作。但是,您在那里成功使用的确切 sn-p 在我实施时工作异常(它是本地 EE 安装,或者我会链接它)。它似乎只适用于列表中的最后一个链接。在我们的示例中,链接 4。一旦最后一个链接被激活,紧接在它之前的链接就会激活第一个内容块。有什么想法吗?
    • Banderdash,你没有任何其他div.copy 元素,是吗?我假设您的 HTML 示例准确地代表了您机器上的示例。
    • 没关系。我忘记了我也在页面的其他区域使用了 div.copy,这造成了严重破坏。非常感谢乔纳森。唯一的另一个问题是 上的活动类......不会随着点击而切换......有什么想法吗?
    猜你喜欢
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 2012-05-21
    相关资源
    最近更新 更多