【发布时间】:2017-11-26 16:06:32
【问题描述】:
我有手风琴式的菜单条。最初,所有菜单都将被折叠。单击菜单时,该特定菜单将展开以提供更多选项。单击任何其他菜单时,前一个菜单将被折叠。我能够做到这一点。问题出在这里(在代码之后):
HTML:
<script>
function showParagraph1(){
var x=document.getElementsByClassName("box1");
x[0].innerText="Hello JavaScript!";
}
function showParagraph2(){
var y=document.getElementsByClassName("box2");
y[0].innerText="Hello JavaScript!";
}
</script>
<div class="title"><p>First Option</p></div>
<div class="selectionPanel">
Select the Duration <select id="duration" required>
<option value="30">last 1 month</option>
<option value="60">last 2 months</option>
</select>
<input type="button" class="button" value="View" onclick="showParagraph1()">
<div class="fillBlue"></div>
<div class="box1"></div>
</div>
<div class="title"><p>Second Option</p></div>
<div class="selectionPanel">
Select the Duration <select id="duration2" required>
<option value="30">last 1 month</option>
<option value="60">last 2 months</option>
</select>
<input type="button" class="button" value="View" onclick="showParagraph2()">
<div class="fillBlue"></div>
<div class="box2"></div>
</div>
CSS
.title{
width:100%;
height:auto;
background-color: #aaa;
padding:5px 0px 5px 0px ;
margin-top:10px;
cursor:pointer;
}
.title p{
font-family:verdana;
text-align:center;
font-weight: bold;
font-size:1.2em;
color: #000;
}
.selectionPanel{
height:auto;
width:100%;
background-color: blue;
padding:10px 0px 0px 0px;
text-align:center;
display:none;
}.box1{
width:100%;
height:auto;
background-color: #fff;
}
.box2{
width:100%;
height:auto;
background-color: #fff;
}.fillBlue{
height:10px;
background-color:blue;
}
jQuery
$(document).ready(function(){
$(".selectionPanel").slideUp();
$(".title").click(function(){
$(this).next(".selectionPanel").slideToggle("slow").siblings('.selectionPanel').slideUp();
});
})
当菜单展开时,它会通过一个名为view的按钮显示更多选项。它附带了一个 onclick 事件以显示文本。 单击任何其他菜单时,展开的 div 会折叠。再次打开折叠的 div 时,它会显示使用按钮单击事件添加的文本消息。 我想删除在其父 div 折叠后立即在按钮单击时显示文本的特定类。
为了重现小提琴中的问题,
1:Click on First Option
2:Click View Button
3:Click Second Option
4:Click First Option
我不想在此处显示 Hello Javascript。只有在点击查看按钮
时才会显示我试过了,但是没用
$(this).next(".selectionPanel").slideToggle("slow").siblings('.selectionPanel').slideUp().removeClass(".selectionPanel");
【问题讨论】:
-
不是完整的答案,但
.removeClass(".selectionPanel")应该是.removeClass("selectionPanel") -
@Hastig 不起作用。我确实尝试过
-
你为什么要删除类
selectionPanel?您希望如何删除文本? -
@Venky 也可以查看我的更新答案。
标签: javascript jquery html css user-interface