首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery Alternative元素

jQuery Alternative元素
EN

Stack Overflow用户
提问于 2020-10-28 02:42:36
回答 3查看 59关注 0票数 3

谁能帮我理解jQuery代码和它如何与我的超文本标记语言有关。链接正在遍历并隐藏所有的div,但是我不明白为什么当链接被点击时div没有显示出来。

HTML:

代码语言:javascript
复制
<section class="meet-the-team pt-5 pb-5">
    <div class="row">
      <div class="col-sm-12 col-md-12 col-lg-12">
        <a href="javascript:;" class="conor-link" data-target="conor">Link 1</a>
        <a href="javascript:;" class="kyle-link" data-target="kyle">Link 2</a>
        <a href="javascript:;" class="tracey-link" data-target="tracey">Link 3</a>
        <a href="javascript:;" class="frank-link" data-target="frank">Link 4</a>
        <a href="javascript:;" class="rosie-link" data-target="rosie">Link 5</a>
        <div class="meet-the-team-info">
          <div class="conor-div">
            <h1>Conor</h1>
            <img src="https://www.w3schools.com/images/w3schools_green.jpg" alt="alternatetext" style="width:100px;">
            <p>Hello Hello Hello</p>
          </div>
          <div class="kyle-div">I'm div2</div>
          <div class="tracey-div">I'm div3</div>
          <div class="frank-div">I'm div4</div>
          <div class="rosie-div">I'm div5</div>
        </div>
      </div>
    </div>
  </section>

jQuery:

代码语言:javascript
复制
$(function () {

    $(".kyle-div, .tracey-div, .frank-div, .rosie-div").hide();

    $("a").bind("click", function () {
       $(".conor-div, .kyle-div, .tracey-div, .frank-div, .rosie-div").hide();
       var target = $(this).data("target");
       $("."+target).toggle();
    });

});
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-10-28 02:58:10

您只需更改jQuery中的一行。

代码语言:javascript
复制
$(function () {

    $(".kyle-div, .tracey-div, .frank-div, .rosie-div").hide();

    $("a").bind("click", function () {
       $(".conor-div, .kyle-div, .tracey-div, .frank-div, .rosie-div").hide();
       var target = $(this).data("target");
       $("."+target+"-div").show() //added "-div" and changed toggle to show
    });
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<section class="meet-the-team pt-5 pb-5">
    <div class="row">
      <div class="col-sm-12 col-md-12 col-lg-12">
        <a href="javascript:;" class="conor-link" data-target="conor">Link 1</a>
        <a href="javascript:;" class="kyle-link" data-target="kyle">Link 2</a>
        <a href="javascript:;" class="tracey-link" data-target="tracey">Link 3</a>
        <a href="javascript:;" class="frank-link" data-target="frank">Link 4</a>
        <a href="javascript:;" class="rosie-link" data-target="rosie">Link 5</a>
        <div class="meet-the-team-info">
          <div class="conor-div">
            <h1>Conor</h1>
            <img src="https://www.w3schools.com/images/w3schools_green.jpg" alt="alternatetext" style="width:100px;">
            <p>Hello Hello Hello</p>
          </div>
          <div class="kyle-div">I'm div2</div>
          <div class="tracey-div">I'm div3</div>
          <div class="frank-div">I'm div4</div>
          <div class="rosie-div">I'm div5</div>
        </div>
      </div>
    </div>
  </section>

票数 1
EN

Stack Overflow用户

发布于 2020-10-29 04:14:26

@natels的解决方案有效,理应成为公认的答案。但即使是他的解决方案也可以缩短一点:

代码语言:javascript
复制
$(function () {
  $("a").click(function () {
    $(".meet-the-team-info div:visible").hide(); // first hide all visible team divs,
    $("."+this.dataset.target+"-div").show();    // then show the chosen one
  }).eq(0).click(); // emulate a click on the first link (index=0)
});
代码语言:javascript
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<section class="meet-the-team pt-5 pb-5">
    <div class="row">
      <div class="col-sm-12 col-md-12 col-lg-12">
        <a href="#" class="conor-link" data-target="conor">Link 1</a>
        <a href="#" class="kyle-link" data-target="kyle">Link 2</a>
        <a href="#" class="tracey-link" data-target="tracey">Link 3</a>
        <a href="#" class="frank-link" data-target="frank">Link 4</a>
        <a href="#" class="gwen-link" data-target="gwen">Link 5</a>
        <a href="#" class="rosie-link" data-target="rosie">Link 6</a>
        <div class="meet-the-team-info">
          <div class="conor-div">
            <h1>I'm Conor</h1>
            <img src="https://www.w3schools.com/images/w3schools_green.jpg" alt="alternatetext" style="width:100px;">
            <p>Hello Hello Hello</p>
          </div>
          <div class="kyle-div">I'm Kyle</div>
          <div class="tracey-div">I'm Tracey</div>
          <div class="frank-div">I'm Frank</div>
          <div class="gwen-div">I'm Gwen</div>
          <div class="rosie-div">I'm Rosie</div>
        </div>
      </div>
    </div>
  </section>

如果要在页面中包含更多div,则不需要调整此代码片段中的代码。各个类名不再出现在代码中。

票数 1
EN

Stack Overflow用户

发布于 2020-10-28 02:55:57

我认为你有一个额外的隐藏()。第一个hide()函数在页面加载时隐藏所有div。但在点击时,你会说“隐藏”和“切换”。他们要么互相取消,要么做一些意想不到的事情。只需切换()即可。另外,选择器中的"div“部分也丢失了。

代码语言:javascript
复制
$(function () {

$(".kyle-div, .tracey-div, .frank-div, .rosie-div").hide();

$("a").bind("click", function () {
  // $(".conor-div, .kyle-div, .tracey-div, .frank-div, .rosie-div").hide();
   var target = $(this).data("target");
   $("."+target+"-div").toggle();
});

});

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64560979

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档