我的聊天代码存在问题。我怎样才能使每个独特的聊天窗口(根据点击的项目ID打开),它将发送一条消息。我让它在第一个聊天窗口工作,因为它是普通的div。
我试过把" #chat_text _" + id但是没有工作,因为它说id是未定义的,即使我已经在代码的上半部分定义了它。
另一个问题是,在聊天窗口并排打开后,一旦关闭,下次打开它们时,它们会从屏幕中间开始,表现得很奇怪,直到我刷新...我尝试重置' NUM'到0,但没有帮助。我想让它移动到屏幕的右侧,直到它到达另一个聊天窗口。如果没有聊天窗口(或者一个刚刚关闭) - >向右滑动
它附加的div:
<div id="chats">
<div class="chat_window">
</div>
</div>
jquery的:
<script>
var num = 0;
function chatWith(id, username, cover, title){
$("#chats").append('<div class="chat_window" id="chat_'+id+'"><div class="chat_top"><span class="chat_username">'+username+'</span><span class="chat_x"><a href="javascript:void(0)" onclick="minChat('+id+')">-</a> <a href="javascript:void(0)" onclick="closeChat('+id+')">X</a> </span><br> <div class="chat_cover"><img src="'+cover+'" alt=" " style="width:15px;height:15px"> '+title+'</div> </div> <div class="chat_content"></div> <form method="post" name="chat" action=""> <textarea class="chat_text" maxlength="200" name="chat_text" id="chat_text_'+id+'" placeholder="Start typing..."></textarea> </form> </div></dv>');
$("#chat_"+id).slideToggle("up");
var move_px = num*225;
$('#chat_'+id).animate({ right: "+="+move_px}, 200, function() { });
num+=1;
}
function minChat(id){
$("#chat_"+id).animate({'margin-bottom':'-18em'});
}
function closeChat(id){
$("#chat_"+id).slideToggle("down");
}
//send messages
var user_id = '<?php if(logged_in()==true){echo $session_user_id;}?>';
var auto_refresh = setInterval(function () {
var b = $("#chat_"+user_id+":last").attr("id");
$.getJSON("chat.php?q="+user_id,function(data){
$.each(data.posts, function(i,data) {
if(b != data.id) {
var div_data="<span id='"+data.id+"'>"+data.user_id+": "+data.msg+"</span>";
$(div_data).appendTo("#chat_"+user_id);
}
});
});
}, 2000);
$(document).ready(function(){
$(document).keypress(function(e) {
if(e.which == 13) {
var boxval = $(".chat_text").val();
var user_id = '<?php if(logged_in()==true){echo $session_user_id;}?>';
var dataString = 'user_id='+ user_id + '&msg=' + boxval;
if(boxval.length > 0) {
$.ajax({
type: "POST",
url: "chat.php",
data: dataString,
cache: false,
success: function(html){
$(".chat_content").append(html);
$(".chat_text").val('');
$(".chat_text").focus();
$(".chat_content").animate({scrollTop: $(".chat_text").offset().top}, 500);
}
});
}
return false;
}
});
});
</script>
非常感谢任何帮助!