如果我使用带有字符串的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)
答案 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);
}