我有可以点击的元素。元素的数量取决于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);
}
}
答案 0 :(得分:1)
最简单的方法是将您的间隔ID存储在DOM元素中:
elm.addEventListener("click", function() {
elm.intervalID = setInterval(/* whatever */, 1000);
});
然后你可以清除:
clearInterval(elm.intervalID);
答案 1 :(得分:0)
如果它只是寻找数据,为什么不使用JQuery的AJAX对象的回调功能?
$.ajax("service.php")
.done(function(data) {
document.getElementById(id).innerHTML = data;
});