php - JQuery - Ajax - 滚动和 setInterval
问题描述
我有滚动和 setInterval 的问题。
这是代码:
function displayChat(){
$.ajax({
url: 'chat/fetch_chat.php',
type: 'POST',
async: false,
data:{
fetch: 1,
},
success: function(response){
$("#chat_area").html(response);
$("#chat_area").scrollTop($("#chat_area")[0].scrollHeight);
}
})
};
setInterval(displayChat, 1000);
插入新数据时,带有“chat_area” id的 div 区域将自动向下滚动。但是当我试图向上滚动时,它会迫使“chat_area”再次向下滚动。我知道这是因为setInterval。
任何人都可以帮助我吗?
解决方案
const chart = $("#chat_area");
setInterval(displayChat, 1000);
function displayChat() {
$.ajax({
url: 'chat/fetch_chat.php',
type: 'POST',
async: false,
data: {
fetch: 1,
},
success: function(response) {
chart.html(response).trigger('ajaxUpdate');
}
})
};
$(() => {
chart.one('ajaxUpdate', '', (event) => {
event.target.scrollIntoView({
behavior: "smooth",
block: "center",
inline: "start"
});
})
});
推荐阅读
- electron - Electron 如何找出哪个进程正在执行公共模块?
- javascript - 在 forEach 循环中使用 onclick 将变量传递给函数 - Google Apps 脚本
- c++ - C++ 基类作为代理
- c# - “程序不包含适用于入口点 WindowsFormsApp 的静态 'Main' 方法”错误消息
- php - 如何在 For 和 while 循环中像先进先出一样在 Top 位置添加数据?可能是反向循环?
- c# - 从资产文件夹统一加载精灵到游戏对象
- kubernetes - Helm 继承变量值
- java - 为什么这行得通,但不像我预期的那样?Java 条件运算符
- flutter - Flutter 中的应用内购买不获取不同设备中的过去购买
- openstreetmap - 使用全息视图放大时,如何让 plottetd 点保持相同大小?