【发布时间】:2011-09-09 01:01:36
【问题描述】:
我已经创建了一个私人聊天系统,一切正常,但我有一个问题,默认情况下聊天框不可见,所以一旦用户单击名称进行聊天,我将使用 jquery 来显示该聊天。
我想要的是,如果我向其他人发送消息,它应该自动将聊天框状态从隐藏更改为显示,让我给你看我的代码
$('#send_now').live("keypress", function(e){
me = $(this);
if(e.which == 13)
{
getData();
}
});
function getData(){
var send_to = $(me).parent('#textareaPanel').children('#submit_send_to').val();
var sender = $(me).parent('#textareaPanel').children('#submit_sender').val();
var send_msg = $(me).val();
var flick = '<div class="singleMsg"><p id="msgTop"><span class="name"><img src="images/avatar.png" width="15" height="15" alt="avatar" /> '+ sender +' said ---</span><span class="time"></span></p><p id="msgData">' + send_msg + '</p></div>';
$('.' + sender).closest('#forclick').show();
if(window.XMLHttpRequest)
{
xmlhttp = new window.XMLHttpRequest();
}
else
{
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
}
xmlhttp.onreadystatechange = function() {
if(xmlhttp.readyState == '4' && xmlhttp.status == '200')
{
response = xmlhttp.responseText;
$(me).closest('#allMsgs').children('#fake').append(flick);
$(me).val('');
}
}
var send_msg = $(me).val();
parameters = 'sender=' + sender + '&send_to=' + send_to + '&send_msg=' + send_msg;
xmlhttp.open('POST', 'scripts/chat-submit.php', true);
xmlhttp.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
xmlhttp.send(parameters);
}
我正在做的是,一旦有人点击输入,它将使用 ajax 将数据发送到服务器,然后它会将该消息附加到发件人的屏幕上,现在问题是虽然聊天已发送,但接收者不确定因为他的聊天框是隐藏的,所以他必须点击我的名字才能查看是否有任何聊天。
谢谢
【问题讨论】: