javascript - jQuery .click() 事件不起作用。两个中的一个正在工作,另一个没有
问题描述
$('.like-btn').click((e) => {
e.target.classList = 'like-unlike-btn unlike-btn far fa-heart';
});
$('.unlike-btn').click((e) => {
e.target.classList = 'like-unlike-btn like-btn far fa-heart';
});
.like-unlike-btn {
color: #fb3958;
font-size: 2rem;
position: absolute;
top: 0;
left: 10px;
cursor: pointer;
}
.like-unlike-btn:hover {
color: rgb(252, 11, 11);
}
.unlike-btn {
font-weight: bold;
}
.like-btn {
font-weight: normal;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css"
integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<i class="like-unlike-btn like-btn far fa-heart"></i>
为什么我的代码不起作用?第一个点击事件工作正常,但第二个不工作请提出一些其他的方法来做到这一点。
解决方案
您可以将事件附加到主类like-unlike-btn
并toggleClass
改用:
$('.like-unlike-btn').on('click', function(e) {
$(this).toggleClass('unlike-btn like-btn');
});
.like-unlike-btn {
color: gray;
font-size: 2rem;
position: absolute;
top: 0;
left: 10px;
cursor: pointer;
}
.like-unlike-btn:hover {
color: red !important;
}
.like-btn {
color: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous">
<i class="like-unlike-btn like-btn far fa-heart"></i>
推荐阅读
- javascript - Qt。从 JS 代码访问应用程序 ts 文件(上下文菜单翻译文本)
- c# - 为什么在我的 IPAddress 字符串中包含前导零时,我从 C# System.Net.IPAddress.Parse() 方法得到不同的结果?
- powershell - 如何使用 powershell 将文件名上的时间戳转换为 UTC 格式?
- android - 为什么启动活动停止?(图片上传活动)
- angular - 在两个组件和服务之间循环数据
- html - 调整窗口大小时停止图像抖动
- jenkins - 通过 jenkins 管道或 jenkins 文件 - 我如何在开始主要阶段之前检查节点状态?
- java - 如何确保线程获得最大优先级?
- python - pyspark 中 OneHotEncoder 的向量大小错误
- mysql - Chef ruby_block ShellOut mysql 结果标准输出永远为空