如果没有你看到它,这很难解释,所以我建议你看看我发布的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排除在帖子之外,因为我觉得这对我遇到的问题不重要。
答案 0 :(得分:3)
添加
.inputAreas {
display: none;
}
到你的CSS最初隐藏它们。然后改变
$('#inputAreas').show();
到
el.find('.inputAreas').show();
答案 1 :(得分:1)
要解决此问题,请在.box:
下的CSS中添加溢出 .box {
...
overflow:hidden;
}
现在任何东西&#34;溢出&#34;您的.box将被隐藏。虽然你可能需要更多地使用css,因为它看起来像你喜欢的方式。祝你好运!
更新: 这是一个小提琴示例:https://jsfiddle.net/doercreator/v8u2q8re/2/