javascript - jQuery setIntervel 直到条件为真
问题描述
页面加载后,我喜欢每隔 1 秒检查一次条件,直到它变为真,然后终止该功能。我尝试了以下脚本,该脚本简单地在页面启动时增加了繁重的负载。
$(document).ready(function () {
setInterval(function () {
for (var i = 0; i < 1; ) {
if ($(".showPrice").length) {
console.log("yes");
i = 1;
} else {
return false;
}
}
}, 1000);
});
解决方案
为了能够清除间隔,您需要对间隔的引用并将其传递给clearInterval()
,只需将其分配给一个变量:
$(document).ready(function () {
let interval = setInterval(function () {
if ($(".showPrice").length) {
clearInterval(interval);
console.log('Cleared!');
}
}, 1000);
setTimeout(function(){
$('.placeholder').html('<div class="showPrice">11.00 $</div>');
}, 3000)
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body>
<div class="placeholder"></div>
</body>
推荐阅读
- mysql - mysql - 将列合并为一行
- assembly - 如何在不使用 MIPS 中的数组的情况下存储多个用户输入的整数?
- r - 将样本大小数据添加到 R 中的饼图(mapplots 包)
- macos - 将源提取到静态库会增加大小
- html - 如何根据需要的格式修改 BeautifulSoup 的 get_text 函数?
- firebase - Firebase 实时数据库安全规则模拟器上的访问被拒绝
- doctrine - 教义不会在迁移中生成列
- reactjs - React - 无法呈现从 API 检索到的列表项
- nuxt.js - Nuxt 为所有动态路由生成带有后备文件的静态站点
- scala - 拆分数据框