javascript - 如何隐藏元素,然后在单击包含它们的 DIV 时显示它们

标签 javascript jquery html animation jquery-animate

如果你没有看到的话,这有点难以解释,所以我建议你看看我发布的 JSFiddle。因此,基本上,当单击某个 div 时,它会向下展开以显示一些输入和按钮,但我遇到的问题是,当文档加载时,输入和按钮是可见的,而它们只应在它们所在的 DIV 展开时出现揭示它们。我已经尝试过以各种可能的方式使用 .hide() 但不知道如何修复它。

<强> https://jsfiddle.net/v8u2q8re/

<div>
  <div class='box' id='emailVer'>
    <h2 id='payText'>PAYMENT</h2>
  </div>

  <div class='box' id='accCust'>
    <h2 id='acText'>ACCOUNT CUSTOMIZATION</h2>
  </div>

  <div class='box' id='pay'>
    <h2 id='evText'>EMAIL VERIFICATION</h2>
    <div id='inputArea1' class='inputAreas'>
      <input id='email' class='evInput'>
      <input id='comf' class='evInput'>
      <button id='sndCde' class='evBut'>Send Code</button>
      <button id='comfBut' class='evBut'>Comfirm</button>
    </div>
  </div>
</div>

JS:

var main = function(){
  $('.box').click(function() {
    var el = $(this); 
    if (!el.hasClass('selected')) {
      el.animate({
      "height": "300px"
    }, 200)
      el.addClass("selected");
      $('#inputAreas').show();
    } else {
      el.animate({
      "height": "85px"
    }, 200);
      $('#inputAreas').hide();
      el.removeClass("selected");
    }
  }
)}
$(document).ready(main);

我决定将 css 排除在帖子之外,因为我认为这对我遇到的问题并不重要。

最佳答案

添加

.inputAreas {
  display: none;
}

到你的CSS来最初隐藏它们。然后更改

$('#inputAreas').show();

el.find('.inputAreas').show();

Example

关于javascript - 如何隐藏元素,然后在单击包含它们的 DIV 时显示它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39109548/

相关文章:

javascript - 通过 Javascript 调用 WCF 服务

javascript - 将段落的每一行包裹在一个跨度中

javascript - 无法在 image.onload 内生成输出

html - 垂直对齐标签中的跨度

javascript - 脚本添加 document.write 与 jQuery 追加

javascript - 提交表单时旋转器 angularjs

javascript - 如何使用推文按钮弹出新窗口

php - 使用PHP和JS在div中显示图像

jquery - Javascript 通过复选框更改 div 的宽度

html - 在图片的中心对齐图标