-1

如果我将 setinterval 与字符串一起使用,那么它可以正常工作,但它也会加载与 onclick 设置的 prvious id(cityid) 相关的聊天。并且在新点击时与新 id(cityid)相关的聊天和以前的 id 之间的聊天每秒后屏幕会随机播放。如果计时器由以前的 id 运行,我想停止计时器,并且只获取与新 id 相关的聊天,以便只进行新的聊天将显示与新 ID 相关的 b。

请帮助,任何替代方法也将不胜感激。

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);

});
}

但是我也尝试通过这种方式设置间隔,但它不起作用(刷新)。我必须将两个参数传递给 chatcom_load 函数。

setInterval(chatcom_load(comid, cityid), 1000)
4

2 回答 2

4
setInterval(chatcom_load(comid, cityid), 

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

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

setInterval(function() { chatcom_load(comid, cityid); },
于 2012-10-15T13:43:40.107 回答
0

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

var si;
function all(comid,comname,cityid,cname){
    if (si) clearInterval(si);
    si = setInterval(function(){ chatcom_load(comid, cityid); }, 1000);
}
于 2012-10-15T13:45:30.227 回答