具有唯一ID的Jquery聊天窗口

时间:2014-03-12 18:05:12

标签: jquery

我的聊天代码存在问题。我怎样才能使每个独特的聊天窗口(根据点击的项目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>

非常感谢任何帮助!

0 个答案:

没有答案