我在做一个网站,作为我班的一个项目(使用HTML,CSS,JavaScript的多为正则表达式和jQuery的效果)。我一直停留在事情是这样的:
我一直在试图颜色的立标记,这是积极的(它与在它1个li元素嵌套UL标签),说颜色是顶部和底部边框,颜色父李标签的文本并删除字体真棒的加和添加一个减号。因此,通过“默认”负处于隐藏状态,正处于活动状态,显示为红色,李父标签的文字是白色的,它的顶和底边框1px的固体和灰色。当我点击它,我想为它降下来(这已经这样做),去掉红加,加了减号,颜色LI标记的文字为红色,并使其边界2px的固体红(顶部和底部)。
<div id="wrapperFAQ">
<h2 id="h2FAQ">Frequently Asked Questions</h2>
<ul id="listaPitanja">
<li><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> Who are we?
<ul>
<li>You can find more about us on our <a href="#">about us</a> page.</li>
</ul>
</li>
<li><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> What products do we have?
<ul>
<li>a</li>
</ul>
</li>
<li><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> I have a hardware issue!
<ul>
<li></li>
</ul>
</li>
<li><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> Where can I find your shop?
<ul>
<li></li>
</ul>
</li>
<li><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> Will you have "x" products in the future?
<ul>
<li></li>
</ul>
</li>
</ul>
<p>Can't find your question on the list?
Send us an <a href="#">e-mail!</a></p>
</div>
这是HTML,这是CSS:
#wrapperFAQ{
width: 80%;
padding:15px;
margin: 0px auto;
}
#h2FAQ{
font-size:4vw;
color:red;
float:left;
border-bottom:3px solid red;
border-left:5px solid red;
}
#listaPitanja{
float:left;
margin: 10px 20px;
padding: 5px 20px;
}
#listaPitanja li{
cursor:pointer;
border-top:1px solid gray;
border-bottom:1px solid gray;
padding: 15px;
}
.fa-minus::before,.fa-plus::before{
color:red;
}
#listaPitanja li ul,.fa-minus::before{
display:none;
}
#listaPitanja, #listapitanja li ul{
list-style:none;
width: 85%;
margin: 0px auto;
color:white;
margin: 10px 0px 0px 15px;
}
#listaPitanja li ul li{
border:none;
}
.activeTab{
display:block;
}
#wrapperFAQ p, #wrapperFAQ p a{
font-size:2vw;
color:gray;
font-weight:strong;
text-align:center;
text-decoration:none;
width: 69%;
}
.aktivna{
border-top: 2px solid red !important;
color: red;
}
这是jQuery的:
$('#wrapperFAQ ul > li ul')
.click(function(e){
e.stopPropagation();
})
.filter(':not(:first)')
.hide();
$('#wrapperFAQ ul li').click(function(){
var selfClick = $(this).find('ul:first').is(':visible');
if(!selfClick) {
$(this)
.parent()
.find('> li ul:visible')
.slideToggle();
$(this).addClass("aktivna");
}
$(this)
.find('ul:first')
.stop(true, true)
.slideToggle()
});
现在,我也从一个文件中,我发现在网上复制此确切的代码,其中大部分是我了解,除“stopPropagation”的一部分,它的“E”的说法(甚至不知道它的来自)以及它应该做的事,因为当我删除它,没有任何不必要的发生视觉。
此外,你可以看到我做的类“aktivna”添加到“活动”菜单(类本身的CSS只有颜色:红色;和边界的顶部和底部设置为2px固体红色重要末)。问题是,我怎么使用我现有的代码,实现了“不活跃”的方式;更精确地说,如果我打开另一个选项卡,我想在活动里标记的类被删除,并添加到其他(打开一个关闭的最后一个)。我曾尝试与代码摆弄;例如我尝试移动到$(本)切换,并去除后级的父,但结果我得到的是主动标签获取类=“” ......这让我相当困惑,也许我有一点对我的代码是如何工作的误解,我不知道,这就是我卡上;颜色,边界,从有源切换时改变正到负,反之亦然为无效等Sry基因为长柱
提示:使用类从弄不清列表,列表项和嵌套列表帮助。
$(".toggleItem").click(function() {
// Remove active class from sibling toggleItems
$(this)
.parent()
.find(".toggleItem")
.removeClass("aktivna");
// Check if we have clicked on a toggleItem that has an open toggleList
var selfClick = $(this)
.find(".toggleList")
.is(":visible");
if (!selfClick) {
// Close the open toggleList
$(this)
.parent()
.find(".toggleList:visible")
.slideToggle();
// Add active class to the clicked toggleItem
$(this).addClass("aktivna");
}
// Open / close to the clicked toggleItem's toggleList
$(this)
.find(".toggleList")
.stop(true, true)
.slideToggle();
});
#wrapperFAQ {
width: 80%;
padding: 15px;
margin: 0px auto;
}
#h2FAQ {
font-size: 4vw;
color: red;
float: left;
border-bottom: 3px solid red;
border-left: 5px solid red;
}
#listaPitanja {
float: left;
margin: 10px 20px;
padding: 5px 20px;
}
#listaPitanja li {
cursor: pointer;
border-top: 1px solid gray;
border-bottom: 1px solid gray;
padding: 15px;
}
.fa-minus::before,
.fa-plus::before {
color: red;
}
#listaPitanja li ul,
.fa-minus::before {
display: none;
}
#listaPitanja,
#listapitanja li ul {
list-style: none;
width: 85%;
margin: 0px auto;
//color: white;
margin: 10px 0px 0px 15px;
}
#listaPitanja li ul li {
border: none;
}
.activeTab {
display: block;
}
#wrapperFAQ p,
#wrapperFAQ p a {
font-size: 2vw;
color: gray;
font-weight: strong;
text-align: center;
text-decoration: none;
width: 69%;
}
.aktivna {
border-top: 2px solid red !important;
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="wrapperFAQ">
<ul id="listaPitanja">
<li class="toggleItem"><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> Who are we?
<ul class="toggleList">
<li>You can find more about us on our <a href="#">about us</a> page.</li>
</ul>
</li>
<li class="toggleItem"><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> What products do we have?
<ul class="toggleList">
<li>a</li>
</ul>
</li>
<li class="toggleItem"><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> I have a hardware issue!
<ul class="toggleList">
<li></li>
</ul>
</li>
<li class="toggleItem"><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> Where can I find your shop?
<ul class="toggleList">
<li></li>
</ul>
</li>
<li class="toggleItem"><i class="fas fa-plus activeTab"></i><i class="fas fa-minus"></i> Will you have "x" products in the future?
<ul class="toggleList">
<li></li>
</ul>
</li>
</ul>
<p>Can't find your question on the list? Send us an <a href="#">e-mail!</a></p>
</div>