当前位置: 首页 > 知识库问答 >
问题:

jQuery show()和hide()用于页面上的多个链接

颜河
2023-03-14

我正在编写一个网页,它将有三个隐藏在div中的相应问题的表单--我在bootstrap的框架中使用了一个简单的.accordion-toggle来实现这个功能。

>

  • 当用户选择“Ask a Question”按钮时,它会向下切换(使用.accordion-toggle)并出现一个表单-使用hide(),“Ask a Question”链接将消失。

    表单将有一个提交按钮来发布表单,但也有一个取消链接-取消链接应该触发表单折叠(使用bootstrap.collable),同时“提问”按钮应该重新出现。

    我可以使用jQuery中的show()和hide()方法使其工作。然而,在同一个页面上有三个取消按钮,我不知道如何为每个链接附加一个唯一的标识符来正确折叠正确的div。

    下面的小提琴是迄今为止最接近的解决方案。

    See @DanielAlmeida Fiddle
    https://jsfiddle.net/ek57ao0y/
        <div class='form form0'>
          <ul>
            <li><a href="#" class='showForm' data-target='.form1'>Show form   1</a></li>
            <li><a href="#" class='showForm' data-target='.form2'>Show form 2</a></li>
            <li><a href="#" class='showForm' data-target='.form3'>Show form 3</a></li>
            <li><a href="#" class='showForm' data-target='.form4'>Show form 4</a></li>
          </ul>
        </div>
        
        <div class='form form1'>
        
          <h3>Form 1</h3>
          <div>
            <textarea name="" id="" cols="30" rows="10"></textarea>
          </div>
        
          <p>
            <a href="#" class='cancel' data-target='.form0'>Cancel</a>
          </p>
        
        </div>
        
        <div class='form form2'>
        
          <h3>Form 2</h3>
          <div>
            <textarea name="" id="" cols="30" rows="10"></textarea>
          </div>
        
          <p>
            <a href="#" class='cancel' data-target='.form0'>Cancel</a>
          </p>
        
        </div>
        
        <div class='form form3'>
        
          <h3>Form 3</h3>
          <div>
            <textarea name="" id="" cols="30" rows="10"></textarea>
          </div>
        
          <p>
            <a href="#" class='cancel' data-target='.form0'>Cancel</a>
          </p>
        
        </div>
        
        <div class='form form4'>
        
          <h3>Form 4</h3>
          <div>
            <textarea name="" id="" cols="30" rows="10"></textarea>
          </div>
        
          <p>
            <a href="#" class='cancel' data-target='.form0'>Cancel</a>
          </p>
        
        </div>
    
  • 共有2个答案

    程亦
    2023-03-14

    “我不确定如何将唯一标识符附加到每个链接以正确折叠正确的div”

    可以使用parent()函数。示例:此代码删除父div...中的所有内容,其中包含以下链接:

    <div>blablabla something <a href='#null' onclick="$(this).parent(\'div\').remove();">Remove</a></div>
    

    在您的原因中,您不会使用“remove”,而是调用colapse函数。

    方楷
    2023-03-14

    您可以通过更改您的代码来实现这一点…通过确保隐藏并显示正确的元素。下面的应该为你做工作。

    null

    $(function() {
      $(".submit-collapse").click(function(){
          $(".contact-form").show();
          $(".submit-collapse").hide();
      });
      $(".cancel-link").click(function(){
          $(".contact-form").hide();
          $(".submit-collapse").show();
      })
    });
    .contact-form{display:none;}
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="form-trigger top-spaced hidden-md hidden-sm hidden-xs">
      <div class="panel panel-default no-border">
        <div class="panel-heading">
          <h4 class="drk-grey">
            Have another question? <a class="accordion-toggle collapsed collapsed grn-btn full-window-btn submit-collapse" data-parent="#accordion" data-toggle="collapse" href="#question-about-app-process">Submit Your Question </a>
          </h4>
        </div>
        <form class="contact-form" action="/mailers/faq_contact_us" accept-charset="UTF-8" method="post"><input name="utf8" type="hidden" value="&#x2713;" /><input type="hidden" name="authenticity_token" value="L+9iNJ7+yKMBBIFsSv0nEzet6tit4bfxTaoUNbopARhIzoN/GL3fn40AaY1sV095jddz6fXzs0p20axPIfki+A==" />
              <div class="spaced">
                <label for="name">Name</label><input type="text" name="name" id="name" class="form-control" required="required" />
              </div>
              <div class="row spaced">
                <div class="col-md-6">
                  <label for="email">Email</label><input type="email" name="email" id="email" class="form-control" required="required" email="true" />
                </div>
                <div class="col-md-6">
                  <label for="primary_phone">Phone</label><input type="tel" name="primary_phone" id="primary_phone" class="form-control" required="required" phone="true" />
                </div>
              </div>
              <div class="spaced">
                <label for="message">Message</label><textarea name="message" id="message" class="form-control" required="required" rows="10" maxLength="1000">
    </textarea>
              </div>
              <div class="spaced">
                <input type="submit" name="commit" value="Submit Question" class="btn btn-small text-center" /><a class="accordion-toggle collapsed collapsed cancel-link" data-parent="#accordion" data-toggle="collapse" href="#question-about-app-process">Cancel</a>
              </div></form>
    
      </div>
     类似资料:
    • 我是Javascript的初学者。我目前正在使用它开发Phonegap应用程序。我被夹在中间,因为我有4个html页面用于注册过程,我必须将所有html页面输入值传递到单个js文件,因为最终所有数据都必须发布到服务器URL,而且我在许多网站上读到,他们建议对你网站的所有页面使用相同的js文件来加快网站速度。所以我有两个问题要解决。我搜索了很多网站,但没有找到准确的答案。 > 我需要将4个html页

    • 我有一个页面有几个链接。每个链接都应该在fancybox窗口中打开。超文本标记语言的结构是这样的: 通过点击任何链接将打开一个fancybox窗口,但并不总是有正确的内容。这并不奇怪,因为所有的内容div都有相同的ID。在fancybox窗口中为每个链接打开正确内容的最佳解决方案是什么? 编辑:我想我的问题解决了。我使用下面的代码: 这个代码正确吗?

    • 我需要使用 laravel 5.3 和 vuejs 2 构建一个应用程序,因为我需要使用双向绑定而不是使用 jquery。 我需要用刀片模板设置视图。然后,我需要在每个页面中使用vuejs,如下所述。 资源/断言/js/组件/List.vue resources/asserts/views/post/index.blade.php 有Add。vue创建.blade。php等…在Add。vue 这是

    • 正如标题所说,多html页面和多jquery-mobile页面哪个更好? 强调: 我所说的多个html页面是指一个以index.html开始的应用程序,当你用你的应用程序导航时,它会将可见页面(通过href)更改为其他html页面,例如another.html,anotherone.html,anothertwo.html等等。 我所说的多个jquery移动页面就是这样一个。 此外,我的意思是更好

    • 问题内容: 我正在将React Router添加到现有项目中。 目前,模型被传递到根组件中,该根组件包含用于子导航的导航组件和主组件。 我发现的React Router的示例只有一个子组件,在不重复两个子组件的情况下更改两个子组件的最佳方法是什么? 问题答案: 如果我正确理解您的要求,则可以在中定义多个组件。您可以像这样使用它: 另外,请查看 侧边栏 示例应用程序,它应该对您有更多帮助。 编辑:

    • 这看起来是最简单的事情,但我无法让它工作。 我需要添加文本到多页pdf的第一页(可以是任何页数) 在两页pdf上使用此代码(没有for循环,只使用$pdf- 文档链接 TCPDF类http://www.tcpdf.org/doc/code/classTCPDF.html#a5171e20b366b74523709d84c349c1ced FPDI类http://www.setasign.de/su