Javascript在setInterval中添加参数

标签 javascript ajax

我有可以单击的元素。元素的数量取决于 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/

相关文章:

javascript - Angular POST JSON 结构

javascript - Php - 将 MySQL 结果回显为 geojson

javascript - 返回的 AJAX 数组未被复制到数组

javascript - 当脚本运行时,它每秒将 4px 添加到我的容器的高度,只发生在 firefox 中?

javascript - 如何隐藏 jquery 中的文本框以进行初始加载?

javascript - 鼠标单击在 html5 的柱形图中不起作用

javascript - 如何将ajax请求发送到同一页面?

javascript - 维基语录 API "Batch Complete"

php - JQuery AJAX 403 禁止访问

javascript - ajax帖子隐藏按钮