javascript - jQuery中的链接方法
问题描述
我正在尝试通过添加一个类pressed
然后等待 100 毫秒然后删除该类来制作动画。
当我只添加类时
$("#" + currentColor).addClass("pressed");
,代码工作正常。但是当我链接方法或单独编写它们时,这些方法都不起作用。
$(".btn").on("click", function () {
var userChosenColor = $(this).attr("id");
animatePress(userChosenColor);
});
function animatePress(currentColor) {
$("#" +
currentColor).addClass("pressed").delay(100).removeClass("pressed");
}
我希望它添加类pressed
然后等待 100 毫秒然后删除类pressed
。但它什么也没做。我也没有在控制台中收到任何错误报告
解决方案
那是因为 delay 方法只延迟效果,例如fadeIn
. 它不会延迟添加或删除类。您应该为此使用 setTimeout。
$(".btn").on("click", function () {
var userChosenColor = $(this).attr("id");
animatePress(userChosenColor);
});
function animatePress(currentColor) {
$("#" + currentColor).addClass("pressed");
window.setTimeout(function () {
$("#" + currentColor).removeClass("pressed");
}, 100);
}
推荐阅读
- powershell - 带有 CSV 文件的 Powershell 随机团队生成器
- ssl - svn 命令因 SSL 失败:Solaris 上的数据包长度错误
- python - 检测路线是否不是Flask中装饰器的最外层/错误“顺序”
- php - PHP:Guzzle 客户端 - 代理请求到不同的服务器
- angular - 这个在 Angular 中订阅 Observable 的箭头函数的正确解释是什么?
- django - Django:密码输入为空
- r - ggplot 棒棒糖图表的自定义端点
- php - 在 Sublime Text 3 中创建 php 标签时双“<”
- excel - For Each - 在数组中打开指定的工作簿
- spring - RabbitMQ - 多个消费者如何从单个队列中消费相同的消息?