我希望能够切换'文本装饰'设置为'通过点击'。(另外,如果有人能告诉我正确的方向,如何使它在点击后进入列表的底部,这将是有帮助的。)
$(".player-name-wrapper").children().click(function() {
if ($(this).css.style.text - decoration == "line-through") {
$(this).css("text-decoration", "none");
} else {
$(this).css("text-decoration", "line-through");
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="qb-wrapper" class="position-wrapper hide-wrapper">
<h4 class="box-heading">QB</h4>
<div id="qb-names" class="player-name-wrapper">
<a>QB Player Name</a>
<a>Player Name</a>
<a>Player Name</a>
<a>Player Name</a>
<a>Player Name</a>
<a>Player Name</a>
</div>
</div>
- 您在
style.text - decoration
中有一个错别字 - 另外,
this
已经指向您想要的元素。只要改变你的风格。你结合了javascript和jQuery,这导致了你的错误。
如此:
$(".player-name-wrapper").children().click(function () {
if (this.style.textDecoration === 'line-through') {
this.style.textDecoration = "none";
} else {
this.style.textDecoration = "line-through";
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="qb-wrapper" class="position-wrapper hide-wrapper">
<h4 class="box-heading">QB</h4>
<div id="qb-names" class="player-name-wrapper">
<a>QB Player Name</a>
<a>Player Name</a>
<a>Player Name</a>
<a>Player Name</a>
<a>Player Name</a>
<a>Player Name</a>
</div>
</div>
就用this.style.textDecoration
。
const container = document.querySelector(".player-name-wrapper");
container.addEventListener("click", e =>
{
const a = e.target;
if (a === container)
return;
a.classList.toggle("crossed");
if (a.classList.contains("crossed"))
container.appendChild(a); //move to the bottom of the list
else
container.insertBefore(a, container.querySelector(".crossed")); //move to the top of crossed list
})
.player-name-wrapper
{
display: grid;
}
.player-name-wrapper > .crossed
{
text-decoration: line-through;
}
<div id="qb-wrapper" class="position-wrapper hide-wrapper">
<h4 class="box-heading">QB</h4>
<div id="qb-names" class="player-name-wrapper">
<a>QB Player Name</a>
<a>Player Name1</a>
<a>Player Name2</a>
<a>Player Name3</a>
<a>Player Name4</a>
<a>Player Name5</a>
</div>
</div>