我在寫一個聊天應用程序,它可以一次打開多個聊天窗口。每次打開一個窗口時,我都會在我的函數update_chat()上調用setInterval來更新單個聊天窗口。我通過chat_id到update_chat()具有參數的函數的clearTimeout
setInterval("update_chat("+chat_id+")",4000);
chat_id
是聊天的只是ID。因此,我可以根據打開多少個聊天,以不同的時間間隔多次運行功能update_chat
。開始聊天工作正常。
我的主要問題是如何停止上述時間間隔。我不想停止所有間隔,只是與特定聊天相關聯的間隔。我試過這個
clearInterval("update_chat("+chat_id+")");
但它沒有做任何事情。
我試圖
var chat_intervals=[]
chat_intervals[chat_id]=setInterval("update_chat("+chat_id+")",4000);
clearInterval(chat_intervals[end_id]);
它沒有停止間隔
不要將字符串傳遞到'setInterval'! –
@Derek朕會功夫爲什麼不呢?我必須通過該函數的一個參數。我還可以如何獲得該函數的參數? – Gilberg
因爲傳遞一個字符串與使用'eval'相同。傳遞參數的正確(安全)方式是在其周圍包裝一個匿名函數。 –