使用 jQuery 在 div 中添加新聊天之前的旧聊天
Append old chats before new chats to the div using jQuery
在我使用 Codeigniter 的在线聊天项目中,jQuery、AJAX 我有一个 每 1 秒运行一次的函数 可以检索聊天状态= 0
$.post("<?php echo base_url(); ?>chat/admin_chat/get_chat",
{
user_id : $('.hide_me').text(),
username : $('.username').text()
},
function(data){
if (data != "") {
$('#chat_window').append(data);
$('#chat_window').scrollTop($('#chat_window').prop("scrollHeight"));
}
}
);
还有另一个 函数用于获取交付状态 = 1(或旧聊天)的聊天,
$(document).on('click','.user',function (e) {
e.preventDefault();
$('.username').html($(this).text());
$('.hide_me').html($(this).attr('id'));
$('.username').show();
$('.log_username').hide();
$("#input").removeAttr("readonly");
var user = $(this).attr('id');
$("#chat_window").html('');
$.post("<?php echo base_url(); ?>chat/admin_chat/get_old_chat",
{
user_id : $('.hide_me').text(),
username : $('.username').text()
},
function(data){
$('#chat_window').append(data);
$('#chat_window').scrollTop($('#chat_window').prop("scrollHeight"));
}
);
});
单击用户名 时调用。 AJAX 调用的结果附加到 div。我现在面临的问题是,有时当我单击用户名时,未传送的 聊天会附加到旧聊天 之前的 div不是我想要的。单击用户名时,我需要在新聊天之前将旧聊天附加到 div。有人可以建议解决问题的方法吗?
我终于找到了解决问题的方法。
- 我添加了一个跨度
<span id='old_chat_appended' hidden=""></span>
。
通过将 span 的值更改为 0 和 1,稍微修改了 get_old_chat
函数。
e.preventDefault()
后添加
$('#old_chat_appended').text('0')
并在使用 $('#chat_window').append(data)
将数据附加到 div 之后, 添加了
$('#old_chat_appended').text('1')
.
最后在每1秒运行一次的get_chat
函数中,添加
if($('#old_chat_appended').text() == 1)
{
$('#chat_window').append(data);
}
应用程序按预期工作。在新聊天之前,旧聊天将附加到 div。
在我使用 Codeigniter 的在线聊天项目中,jQuery、AJAX 我有一个 每 1 秒运行一次的函数 可以检索聊天状态= 0
$.post("<?php echo base_url(); ?>chat/admin_chat/get_chat",
{
user_id : $('.hide_me').text(),
username : $('.username').text()
},
function(data){
if (data != "") {
$('#chat_window').append(data);
$('#chat_window').scrollTop($('#chat_window').prop("scrollHeight"));
}
}
);
还有另一个 函数用于获取交付状态 = 1(或旧聊天)的聊天,
$(document).on('click','.user',function (e) {
e.preventDefault();
$('.username').html($(this).text());
$('.hide_me').html($(this).attr('id'));
$('.username').show();
$('.log_username').hide();
$("#input").removeAttr("readonly");
var user = $(this).attr('id');
$("#chat_window").html('');
$.post("<?php echo base_url(); ?>chat/admin_chat/get_old_chat",
{
user_id : $('.hide_me').text(),
username : $('.username').text()
},
function(data){
$('#chat_window').append(data);
$('#chat_window').scrollTop($('#chat_window').prop("scrollHeight"));
}
);
});
单击用户名 时调用。 AJAX 调用的结果附加到 div。我现在面临的问题是,有时当我单击用户名时,未传送的 聊天会附加到旧聊天 之前的 div不是我想要的。单击用户名时,我需要在新聊天之前将旧聊天附加到 div。有人可以建议解决问题的方法吗?
我终于找到了解决问题的方法。
- 我添加了一个跨度
<span id='old_chat_appended' hidden=""></span>
。 通过将 span 的值更改为 0 和 1,稍微修改了
get_old_chat
函数。e.preventDefault()
后添加$('#old_chat_appended').text('0')
并在使用
$('#chat_window').append(data)
将数据附加到 div 之后, 添加了$('#old_chat_appended').text('1')
.最后在每1秒运行一次的
get_chat
函数中,添加if($('#old_chat_appended').text() == 1) { $('#chat_window').append(data); }
应用程序按预期工作。在新聊天之前,旧聊天将附加到 div。