Javascript在setInterval中添加参数

时间:2014-11-06 00:08:49

标签: 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);
    }
}

2 个答案:

答案 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;
    });

http://api.jquery.com/jquery.ajax/