我有可以单击的元素。元素的数量取决于 MySQL 查询。
当点击某个元素时,它需要每秒使用 AJAX 查找数据。
每个元素都有来自数据库的特定答案。
当某个元素的预期数据到达时,该函数必须针对该元素停止。
如果有一个元素,我可以让它工作,但如果查询中有多个元素,我不知道如何继续。
//MYSQL QUERY
while($query->fetch())
{
<div id="<?php echo $query['id']; ?>"
onclick='getData("<?php echo $query['id']; ?>");'>
</div>
}
JS:
function getData(id) {
var x = setInterval(function(){ajaxRequest(id)}, 1000);
}
function ajaxRequest(id){
//select response from database where ID = id
if($data['response'] == "1")
{
document.getElementById(id).innerHTML = "There is new data";
clearInterval(x);
}
}
最佳答案
最简单的方法是将间隔 ID 存储在 DOM 元素中:
elm.addEventListener("click", function() {
elm.intervalID = setInterval(/* whatever */, 1000);
});
然后您可以清除:
clearInterval(elm.intervalID);
关于Javascript在setInterval中添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26769569/