【问题标题】:JQuery 4 button menu, on click hide divs and show others, and vice versaJQuery 4按钮菜单,点击隐藏div并显示其他人,反之亦然
【发布时间】:2015-08-23 17:27:08
【问题描述】:

我的网站上有四个按钮。当您单击一个按钮时,该按钮本身应该变得不可见,并且新文本应该变得可见。当您单击该链接时,其他文本应该是不可见的,并且其他菜单按钮应该是可见的。

为了说明我的意思,我列了一个清单。在此列表中,您可以看到单击某些按钮时应该发生什么,以及打开网站时应该发生什么:


当您打开网站时,应该是这样的: ".menu-home-link, .menu-government-text, .menu-voice-text, .menu-news-text" 应该被隐藏,并且 ".menu-home- text, .link-your-voice, link-nation-news, .link-government" 应该是可见的。


当你点击一个菜单按钮时我想要发生的事情:

如果你点击"Menu-home-link" -> ".menu-home-link, .menu-government-text, .menu-voice-text, .menu- news-text" 应隐藏,".menu-home-text, .link-your-voice, link-nation-news, .link-government" 应可见。

如果您点击 ".link-your-voice" -> ".link-your-voice, .menu-government-text, .menu-home-text, .menu -news-text" 应隐藏,".menu-voice-text, menu-home-link, link-nation-news, .link-government" 应可见。

如果你点击".link-nation-news" -> ".link-nation-news, .menu-government-text, .menu-home-text, .menu -voice-text" 应隐藏,".menu-news-text, Menu-home-link, link-your-voice, .link-government" 应可见。

如果你点击".link-government" -> ".link-government, .menu-news-text, .menu-home-text, .menu-voice-text " 应隐藏,".menu-government-text, Menu-home-link, link-your-voice, .link-nation-news" 应可见。 p>


目前我有以下 jQuery 代码,我尝试在所有可能的情况下复制它,但它不起作用。有人可以帮我完成上述点击吗?

<script>
$(function () {

    $(".menu-home-link, .menu-government-text, .menu-voice-text, .menu-news-text").hide();

    $(".link-government, .link-home, link-your-voice, link-nation-news").bind("click", function () {

      $(".menu-home-link, .menu-home-text").hide();        

      if ($(this).attr("class") == "link-government")
      {
        $(".menu-home-link, .link-your-voice, .link-nation-news").show();
          $(".menu-government-text").show();
          $(".link-government").hide();
      }
      else 
      { 
        $(".menu-home-text").show();
          $(".link-government").show();
          $(".menu-government-text").hide();
      }       
    });

});
<script>

它必须使用以下 HTML:

        <div class="menu-home">
            <!-- The first link -->
            <div class="menu-home-link"><a href="#" class="link-home"><span data-hover="Home" >Home</span></a></div>
            <!-- -->
            <!-- The first content -->
            <div class="menu-home-text"><div class="menu-homeline"></div><div class="menu-topline"></div><div class="menu-home-slogan">TODAY,<br>TOMORROW,<br>FOREVER.</div>
            <div class="menu-bottomline"></div></div>
            <!-- -->
        </div>
        <div class="menu-government">
            <!-- The second link -->
            <a href="#" class="link-government"><span data-hover="The Government">The Government</span></a>
            <!-- -->
            <!-- The second content -->
            <div class="menu-government-text"><div class="menu-governmentline"></div><div class="menu-topline"></div><div class="menu-home-slogan">THE<br>GOVERNMENT</div>
            <div class="menu-bottomline"></div>
            <!-- -->
        </div>
        <div class="menu-your-voice">
            <!-- The third link  -->
            <a href="#" class="link-your-voice"><span data-hover="Your Voice">Your Voice</span></a>
            <!-- -->
            <!-- The third content -->
            <div class="menu-voice-text"><div class="menu-governmentline"></div><div class="menu-topline"></div><div class="menu-home-slogan">YOUR<br>VOICE</div>
            <div class="menu-bottomline"></div>
            <!-- -->
        </div>
        <div class="menu-news">
            <!-- The fourth link -->
            <a href="#" class="link-nation-news"><span data-hover="Nation News">Nation News</span></a>
            <!-- -->
            <!-- The fourth content -->
            <div class="menu-news-text"><div class="menu-governmentline"></div><div class="menu-topline"></div><div class="menu-home-slogan">NATION<br>NEWS</div>
            <div class="menu-bottomline"></div>
            <!-- -->
        </div>

亲切的问候, 米兰

【问题讨论】:

  • 您是否考虑过展示一些 HTML 或 CSS?
  • 小提琴会说1000多字
  • @TributetoAPJKalamSir 为什么要摆弄? SO 拥有所有必要的工具,不会将代码外包给外部网站。
  • 我认为不需要任何 html 或 css?我在这里输入了所有的类(前面有一个 .)。在 CSS 中,除了那些 div 的外观之外,没有什么用处。我想要的只是我在这里告诉的类,在单击类时隐藏或显示,再次在上面提供。

标签: javascript jquery


【解决方案1】:

你的意思是这样的?

$("nav a").click(function( e ){
  e.preventDefault();
  $("nav .active, #pages .active").removeClass("active");
  $(this).add( $(this.hash) ).addClass("active");
});
nav li{
  display:inline-block;
  list-style:none;
  padding:10px;
}
nav a.active{
  display:none;
}
#pages > div{
  display:none;
}
#pages .active{
  display:block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<nav>
  <ul>
    <li><a href="#a" class="active">a</a></li>
    <li><a href="#b">b</a></li>
    <li><a href="#c">c</a></li>
    <li><a href="#d">d</a></li>
  </ul>
</nav>

<div id="pages">
  <div id="a" class="active">A text</div>
  <div id="b">B text</div>
  <div id="c">C text</div>
  <div id="d">D text</div>
</div>

【讨论】:

  • 这似乎做了我想做的事。我试图将它植入我当前的 html 中,但我似乎无法让它工作。检查我的主帖,我添加了html。也许你可以看到我如何在那个 html 中植入它?感谢您的帮助!
  • 您可以在激动人心的一次中添加额外的类,这样我就可以添加新的类而无需编辑旧的类。希望你能帮助我。亲切的问候,米兰
猜你喜欢
  • 1970-01-01
  • 2021-06-14
  • 1970-01-01
  • 1970-01-01
  • 2015-08-21
  • 1970-01-01
  • 1970-01-01
  • 2016-01-20
  • 1970-01-01
相关资源
最近更新 更多