Setinterval无法正常工作

时间:2012-10-15 13:41:17

标签: php jquery

如果我使用带有字符串的setinterval,那么它工作正常,但它也会加载与onclick设置的prvious id(cityid)相关的聊天。并且在新点击和之前的id上与新id(cityid)相关的聊天之间的每秒之后重新播放。我希望停止计时器(如果它是按先前的ID运行),并且仅获取与新ID相关的聊天,以便仅新聊天将显示与新ID相关的内容。

Plz帮助,任何替代方法也都会受到欢迎。

Php onclick就在这里

            echo "<A href='#'  onclick=allccityid('$comid','$comname',$cityid,'$cities');>$cities</A><br> ";

Jquery代码在这里。

function all(comid,comname,cityid,cname){
//clearInterval(si);

 setInterval('chatcom_load('+ comid +','+ cityid +');', 1000)

 }


 function chatcom_load(idi, cityida) {

$.post('sendchat2.php', {option:'chatcom_load', tocom:idi, tocity:cityida}, function(data) {
    $('#chatcom #commid #commidwin').html(data);

});
}

但是我也通过这种方式尝试setinterval,但它没有工作(刷新)。我必须将两个参数传递给chatcom_load函数。

setInterval(chatcom_load(comid, cityid), 1000)

2 个答案:

答案 0 :(得分:4)

setInterval(chatcom_load(comid, cityid), 

立即调用chatcom_load函数 ,然后将结果传递给setInterval

您需要将函数传递给setInterval,如下所示:

setInterval(function() { chatcom_load(comid, cityid); },

答案 1 :(得分:0)

setInterval()只接受函数调用,您的代码正在执行该方法并传递结果。您需要将方法包装在function(){}中。您还需要引用当前间隔,如果已将其设置为阻止以前的值继续加载,则取消它:

var si;
function all(comid,comname,cityid,cname){
    if (si) clearInterval(si);
    si = setInterval(function(){ chatcom_load(comid, cityid); }, 1000);
}