javascript - 无法使用 JQuery 删除 HTML 类
问题描述
我的代码有问题,我真的很难理解为什么它不起作用。我将我的代码放在 JSFiddle 上,以便您对其进行测试(https://jsfiddle.net/veka33/3rv0wft7/21/)。使用我的代码,我在单击按钮时启动动画。动画运行后,当我单击 div 时,它会完全显示。当 div 展开时,我想改变 div 的位置,所以我不能完全看到它。我想通过单击退出按钮删除类“.scoreExpand”来做到这一点。但是,我无法删除此类。
$(document).ready(function() {
$("#clickMe").click(function() {
$(".score").addClass("showScore");
});
$(".score").click(function() {
$(".score").removeClass("showScore");
$(".score").addClass("scoreExpand");
$("#exitScore").css("visibility", "visible");
});
$("#exitScore").click(function() {
$(".scoreExpand").removeClass("scoreExpand");
});
});
.score {
position: fixed;
top: 100px;
right: -250px;
height: 100px;
width: 200px;
border-radius: 2em;
color: white;
background-color: grey;
border-color: yellow;
border-style: solid;
border-width: 10px;
}
.showScore {
animation: showScoreboard 3s;
animation-fill-mode: forwards;
right: -250px;
}
.scoreExpand {
animation: fixScoreboard 1s;
animation-fill-mode: forwards;
animation-timing-function: linear;
right: 50px;
}
#flexContainer {
display: flex;
flex-direction: row;
margin-top: 30px;
justify-content: space-around;
}
@keyframes showScoreboard {
50% {
right: 50px;
}
100% {
right: -150px;
}
}
@keyframes fixScoreboard {
0% {
right: -150px;
}
50% {
right: -50px;
}
100% {
right: 50px;
}
}
#exitScore {
position: absolute;
left: 220px;
top: 35px;
font-size: 30px;
color: yellow;
visibility: hidden;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
<div>
<button id="clickMe">Clicke Me!</button>
</div>
<div class="score">
<div id="flexContainer">
<i class="fa fa-star" style="font-size: 30px; color: yellow;"></i>
<p style="padding-right: 50px; font-size: 20px; vertical-align: top; line-height: 0px;" id="scoreDisplay">Score: </p>
</div>
<i class="fa fa-times-circle" id="exitScore"></i>
</div>
解决方案
您添加了两个对同一对象执行相反操作的侦听器。只需更改包含侦听器的元素...
$(document).ready(function(){
$("#clickMe").click(function(){
$(".score").addClass("showScore");
});
$("#flexContainer").click(function(){
$(".score").removeClass("showScore");
$(".score").addClass("scoreExpand");
$("#exitScore").css("visibility","visible");
});
$("#exitScore").click(function(){
$(".scoreExpand").removeClass("scoreExpand");
});
});
推荐阅读
- python - 如何将数据集缩放到与另一个相同的比例?
- c# - XML 文件到列表
- npm - 为什么“npm install”在我的“package-lock.json”文件中为我的包添加“node_modules”前缀?
- mysql - 试图从表 'ei_benefits' 中仅查找列 'salary' 中的 14 个最高值的列 'salary' 的平均值
- html - 如何将 Select/ComboBox 的宽度与普通 div 中的宽度对齐或更改?
- google-cloud-sql - 如何减少 Google Cloud 上 PostgreSQL 的存储大小?
- python - 如何在 Mac 上启动 IDLE 时运行自定义脚本?
- javascript - 根据特定标准将行删除到不同的选项卡
- javascript - 如何过滤二维数组以获取单个项目?
- javascript - 我被迫将我的小部件附加到 . 这样做有什么副作用?