javascript - 单击按钮后集成 SetTimeOut 功能
问题描述
我创建了一段代码,通过使用 onClick 元素将状态从 display:block 更改为 display:none。我的目标是在动画效果发生时延迟状态变化几秒钟。
下面的这段代码是我目前用来更改元素状态的代码,但不确定如何合并延迟。
非常感谢任何意见或建议。
谢谢,蚂蚁
function showDiv1(elem) {
var divsToCheck = ["close","Holder"]; // Add to here to check more divs
for (var i = 0; i < divsToCheck.length; i++) {
if (divsToCheck[i] == elem) {
document.getElementById(divsToCheck[i]).style.display = "block";
} else {
document.getElementById(divsToCheck[i]).style.display = "none";
}
}
}
解决方案
您应该在循环中调用一个函数来处理 setTimeout 和隐藏/显示,而不是在循环中调用超时函数。(不会工作,因为我不再可用)。见这里:https ://jsbin.com/refodobaca/1/edit?html,css,js,output
function showDiv1(elem) {
var divsToCheck = ["close","Holder"]; // Add to here to check more divs
for (var i = 0; i < divsToCheck.length; i++) {
if (divsToCheck[i] == elem) {
showHideDiv(divsToCheck[i], true);
} else {
showHideDiv(divsToCheck[i], false);
}
}
}
function showHideDiv(elem, bShow) {
var timeoutSeconds = 3;
setTimeout(function() {
document.getElementById(elem).style.display = (bShow ? "block" : "none");
}, timeoutSeconds * 1000);
}
showDiv1('Holder');
推荐阅读
- php - 在流明控制器中获取 url 前缀
- google-chrome - Chrome 现在不限制 webrtc 的 IP 地址了吗?
- r - 在R中对矩阵的相反方向向量求和
- computer-vision - 为什么它被称为深度,轨迹等的估计而不是测量?
- javascript - 将带有 HTML DOM 的 SDK 加载到 nodejs 中
- azure-data-factory - Azure 数据工厂:管道失败时发送电子邮件
- java - 如何使用枚举获取星期几
- d3.js - wrap 未定义 D3.js 文本
- javascript - 通过 JavaScript 向 Openproject 发送 Web 请求
- c# - C# - 多对一关系 Automapper