element - 页面上的多个间隔,如何仅在特定元素上清除间隔
问题描述
我一直无法弄清楚如何在页面上使用多个间隔。通常,这不会是一个问题,但我正在努力创建一个动态倒计时脚本,它使用用户提交的数据并且必须遵守一些规则:
- 我只需要间隔来专门清除给定元素。
- 如果当前在该特定元素中设置了间隔,我只需要清除间隔。
我的想法是计算每个间隔并将数字实例分配给每个间隔。所以是这样的:
function(element, data, api) {
let intervalIds = [];
for (var i=0; i < intervalIds.length; i++){
}
intervalIds.push(setInterval(function(){
console.log(intervalIds[i]);
clearInterval(intervalIds[i]-1);
//timecalculations after
}, 1000 ));
}
起初这很有效,但是当我以多个间隔刷新页面时,但在刷新页面后只有一个间隔。
如果元素 ID 相同并且已为该元素设置了间隔,则清除之前的间隔
如果元素 ID 不同,只需开始一个新的间隔
PS 使用我正在使用的软件,我可以使用 data.elementId 访问元素 ID。例如:如果(data.elementId == data.elementId){ 做事}
解决方案
我找到了这个谜语的答案。
您需要创建一个动态变量。为此,您需要使用 eval() 或将变量分配给窗口范围。然后将间隔分配给该变量。
幸运的是,我使用的软件为添加到页面的每个元素分配了一个唯一的 ID。所以我可以使用这个唯一的 Id 将它分配给变量来创建动态 va
例如:
//unique id
var dynamicIntervalID = $(element).attr('id');
//clear interval if one exists
if (window["intervalIds"+dynamicIntervalID])clearInterval(window["intervalIds"+dynamicIntervalID])
//assign unique element id to interval
window["intervalIds"+dynamicIntervalID] = setInterval(function(){
...code here..
}, 1000 );
希望这可以帮助。
推荐阅读
- c# - 具有多个部分的 C# xml 到字典转换
- r - 如何从 zip 读取多个 csv 文件并导入 R 中的不同数据帧?
- ios - 适用于 iOS 的 HERE SDK - 切换服务器环境
- javascript - 我如何限制数组只存储 3 个对象?
- python - pandas 函数 isin 不适用于 def 方法中的数据框
- ansible - 在ansible中从寄存器创建变量
- c# - 用于侧载 UWP 应用的 Windows 10 反馈中心
- python - 调用 tensorflow freeze_graph 时出现“IndexError: list index out of range”错误
- bash - 在没有“源”的情况下在另一个文件中查找 Bash 变量值的最佳方法?
- installation - 安装geopandas的问题