我在我的网站上创建了一个.js文件,并且我正在运行一些功能来保存scrollTop
ul
的值。我有另一个用setInterval
调用的函数,如果它跳回0,则恢复scrollTop
值(因为我使用ajax方法;它每5秒更新一次并跳转到顶部)。
问题是chatScroll
是.js文件中的全局变量,在调用ajax方法后会被重置。
这些是我的Javascript函数:
var chatScroll = 0, chattimer = false;
function UpdateChatScroll(chat) {
if (chat.scrollTop != 0 && chat.scrollTop != chatScroll) {
//window.alert(chat.scrollTop);
chatScroll = chat.scrollTop;
if (!chattimer) {
chattimer = true;
setInterval(function () { RestoreChatScroll(chat); }, 10000);
}
}
}
function RestoreChatScroll(chat) {
//window.alert(chatScroll);
if (chat.scrollTop == 0) {
window.alert("Should update..");
chat.scrollTop = chatScroll;
}
}
我做错了吗?这可以解决吗?
答案 0 :(得分:0)
有一个修复:
var chatScroll = 0, chattimer = false, chatVar, chattimervar;
function UpdateChatScroll() {
clearInterval(chattimervar);
chatVar = document.getElementById("msgs_list");
if (chatVar.scrollTop != chatScroll) {
chatScroll = chatVar.scrollTop;
chattimervar = setInterval(RestoreChatScroll, 10);
}
}
function RestoreChatScroll() {
chatVar = document.getElementById("msgs_list");
if (chatScroll != chatVar.scrollTop) {
chatVar.scrollTop = chatScroll;
}
}