是否可以通过所选/活动列表的名称更改主标题?例如,如果我选择“项目A”,我希望主标题更改为“项目A”,如果我选择“子项目A1”,则主标题将更改为“子项目A1等其他项目。但当没有列表项处于活动状态时,标题也必须恢复为原始名称/selected如何使用jquery实现这一点?
var toggler = document.getElementsByClassName("caret");
var i;
for (i = 0; i < toggler.length; i++) {
toggler[i].addEventListener("click", function() {
this.parentElement.querySelector(".down").classList.toggle("active");
this.classList.toggle("caret-down");
});
}
* {
margin: 0;
padding: 0;
list-style-type: none;
}
.container {
background: silver;
width: 300px;
border: 1px solid;
margin: 10px;
}
.title {
background: #94a2e4;
border-bottom: 1px solid;
border-top: 1px solid;
padding: 5px;
}
.list{font-size: 20px;}
.caret {
cursor: pointer;
user-select: none;
}
.caret::before {
content: "\25B6";
color: black;
display: inline-block;
margin-left: 230px;
}
.caret-down::before {
transform: rotate(90deg);
}
.down {
display: none;
background: #e0e0e0;
}
.active {
display: block;
}
<div class="container">
<div class="title">
<h1>Change titlet</h1>
</div>
<div class="list">
<ul>
<li>Item A<span class="caret">
<ul class="down">
<li>Sub item A1</li>
<li>Sub item A2</li>
<li>Sub etc.</li>
</ul>
</li>
<li>Item B<span class="caret">
<ul class="down">
<li>list etc.</li>
</ul>
</li>
</ul>
</div>
1条答案
按热度按时间sr4lhrrt1#
不需要jquery。你所需要做的就是在.down中的所有li中添加一个click事件。你可以通过选择所有li,添加该事件来实现。在该事件中,你可以设置标题的文本。