首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >尝试用鼠标单击事件响应编写jQuery HTML5聊天框程序

尝试用鼠标单击事件响应编写jQuery HTML5聊天框程序
EN

Stack Overflow用户
提问于 2016-04-26 02:25:30
回答 2查看 966关注 0票数 0

我有问题,编码一个聊天室程序的学校项目。我在这个程序上有三个问题。首先,我的聊天信息没有正确地在我的聊天框中发布。第二,我希望能够点击“退出”,让它靠近窗口,但不完全确定如何做。最后,我希望聊天能回复信息,或者至少有一个硬编码的响应。我在研究怎么做--我不太确定该怎么做。我有一个样式表和html。这是我的html:

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <script src=http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js ></script>
<link rel="stylesheet" type="text/css" href="jQuery.css">



//my issues seem to be in my Javascript between here************************************



<script type="text/javascript">
    $(document).ready(function(){
        $('#submitmsg').click(function(){
            var message = $('#usermsg').val()
            var old = $('#chatbox').html()

            $('#chatbox').html(old + '<p>' + message + '</p>');
        });
    });
</script>
<script >
    function close_window(url){
        var newWindow = window.open('', '_self', ''); //open the current window
        window.close(url);
    };
</script>


//and here*****************************************************************************
</head>
<body>
<div id="wrapper">
    <div id="menu">
        <p class="welcome">Welcome <b></b></p>

//Possible issue here*******************************************************************
        <p class="logout"><a id="exit" href="#" onclick="window.close();">Exit Chat</a></p>
        <div style="clear:both"></div>
    </div>

    <div id="chatbox">
        <p>Here's our chat data</p>
    </div>

    <form name="message" action="">
        <input name="usermsg" type="text" id="usermsg" size="63" />
        <input name="submitmsg" type="submit"  id="submitmsg" value="Send" />
    </form>
</div>      
</body>
</html>  

这是我的css:

代码语言:javascript
复制
body {
font:12px arial;
color: #222;
text-align:center;
padding:35px; }

form, p, span {
    margin:0;
    padding:0; }

input { 
    font:12px arial; }

a {
    color:#0000FF;
    text-decoration:none; }

a:hover { 
    text-decoration:underline; }

#wrapper, #loginform {
    margin:0 auto;
    padding-bottom:25px;
    background:#EBF4FB;
    width:75%;
    border:1px solid #ACD8F0; }

#loginform { 
    padding-top:18px; }

#loginform p { 
    margin: 5px; }

#chatbox {
    text-align:left;
    margin:0 auto;
    margin-bottom:25px;
    padding:10px;
    background:#fff;
    height:270px;
    width:430px;
    border:1px solid #ACD8F0;
    overflow:auto; }

#chatbox p {
    padding:1em;
    margin:1em;
    background:#E6E6E6;
    border:1px solid #BDBDBD;
    -moz-border-radius:4px;
}

#usermsg {
    width:395px;
    border:1px solid #ACD8F0; }

#submit { 
    width: 60px; }


.welcome { 
    float:left; }

.logout { 
    float:right; }

.msgln { 
    margin:0 0 2px 0; }

有些css是不必要的,我很确定,但是当我尝试删除一些css时,它会引起一些问题。任何帮助都是非常感谢的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-26 03:26:46

尝试复制以下内容--我将样式放入头部,将javascript移到末尾,并将输入替换为一个按钮。这是与onclick的联系,并将新的注释附加到聊天窗口中。它可以工作,但可以做得更好,而且我还没有谈到关闭窗口的问题,但这确实将新的评论张贴到聊天区域。

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js" ></script>
<style>
body {
font:12px arial;
color: #222;
text-align:center;
padding:35px; }

form, p, span {
    margin:0;
    padding:0; }

input { 
    font:12px arial; }

a {
    color:#0000FF;
    text-decoration:none; }

a:hover { 
    text-decoration:underline; }

#wrapper, #loginform {
    margin:0 auto;
    padding-bottom:25px;
    background:#EBF4FB;
    width:75%;
    border:1px solid #ACD8F0; }

#loginform { 
    padding-top:18px; }

#loginform p { 
    margin: 5px; }

#chatbox {
    text-align:left;
    margin:0 auto;
    margin-bottom:25px;
    padding:10px;
    background:#fff;
    height:270px;
    width:430px;
    border:1px solid #ACD8F0;
    overflow:auto; }

#chatbox p {
    padding:1em;
    margin:1em;
    background:#E6E6E6;
    border:1px solid #BDBDBD;
    -moz-border-radius:4px;
}

#usermsg {
    width:395px;
    border:1px solid #ACD8F0; }

#submit { 
    width: 60px; }


.welcome { 
    float:left; }

.logout { 
    float:right; }

.msgln { 
    margin:0 0 2px 0; }
    </style>
</head>
<body>
<div id="wrapper">
    <div id="menu">
        <p class="welcome">Welcome</p>
        <p class="logout"><a id="exit" href="#" onclick="window.close();">Exit Chat</a></p>
        <div style="clear:both"></div>
    </div>

    <div id="chatbox">
        <p>Here's our chat data</p>
    </div>

    <form name="message">
        <input name="usermsg" type="text" id="usermsg" size="63" />
        <button type="button" id="submitmsg" value="send">Send</button>    
    </form>
</div> 

<script>
    $(document).ready(function(){
        $('#submitmsg').click(function(){
            var message = $('#usermsg').val();
            $('#chatbox').append('<p>' + message + '</p>');
            $('#usermsg').val('');
        });
    });

 function close_window(url){
        var newWindow = window.open('', '_self', ''); //open the current window
        window.close(url);
    };
</script>

</body>
</html> 
票数 0
EN

Stack Overflow用户

发布于 2016-04-26 03:10:49

一个问题是,您使用的表单,然后发布到相同的页面-重新加载它。我将您的代码复制到一个测试页面(称为chatTest.html)中,并在单击“发送”按钮后获得以下url:

代码语言:javascript
复制
chatTest.html?usermsg=test+message&submitmsg=Send

您的消息确实会被发布到聊天部分,但是在页面重新加载时会被删除。而且,由于您没有指定方法--它将其视为get表单,并将消息作为附加到url的querystring发布。

如果您计划将注释保存到数据库中,那么应该将表单的操作更改为不同的php页面,处理结果并将保存的内容返回到聊天部分--也许可以使用Ajax,这样就不必在每次提交聊天时重新加载页面。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36854261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档