如何让 jQuery 聊天回复我

How to get jQuery chat to respond to me

我正在尝试在我的移动应用程序上构建前端聊天功能。我一直在关注一个关于如何做的 youtube 系列,但在视频 14 中,这位先生的方向与我想要的不同。我想成为第一个打字的人,然后让 "bot" 回复我(在预定的字符串中)。不幸的是,他是这样的,机器人问你的名字,然后你回答,然后机器人说很高兴见到你(名字)

我的问题是使用我提供的代码,如何让 "bot" 在我先输入后回复我?

$(function(){

  $("#chatSend").click(function(){

    var username = "<span class = 'chatUsername' =>CNN_News: </span>";

    var newMessage = $("#chatTextBox").val();

    $("#chatTextBox").val("");

    var prevState = $("#chatContainer").html();

    if (prevState.length > 7){
        prevState = prevState + "<br>";
    }

    $("#chatContainer").html(prevState + username + newMessage);

    $("#chatContainer").scrollTop($("#chatContainer").prop("scrollHeight"));

  });

});

如果问题是那个机器人先问他的问题,然后你输入你的 question/answer...等等,你想成为第一个,然后就忽略机器人发送的内容。

加载页面并开始聊天时,清除聊天中的内容 window。 //首先清空输入的任何机器人 $("#chatContainer").empty();

//start your first line 

或者...如果您想要更好的答案,请解释该机器人的工作原理。

问题仍然令人困惑,但这里有一个非常基本和简单的快速机器人演示。

http://jsfiddle.net/91svxht9/4/

和代码

Javascript

var username = "John";
var botname = "Bot";
var sendBtn = $("#chatSend");
var chatContainer = $("#chatContainer");
var botResponses = [
    "Wow, thats cool", "Im a bot", "who are you", "thats soo cool" , "give me all your money"
];
var addMessage = function(who, msg) {
    var ownerclass = "bot";
    if ( who == username ) {ownerclass = "mine";}
    chatContainer.append("<div class='message "+ownerclass+"'><span>"+who+"</span>: "+msg+"</div>");
    sendBtn.attr("disabled", true);//disable send until bot responds
    chatContainer.scrollTop($("#chatContainer").prop("scrollHeight"));    
}
var botRespond = function() {
    var msg;
    msg = botResponses.shift();
    if ( !msg ) { msg = "i have nothing more to say";}
    addMessage(botname, msg);
    sendBtn.removeAttr("disabled");//disable send until bot responds
}


$(function(){
  sendBtn.click(function() {
    var msg = $("#chatTextBox").val();
    if ( !msg ) {alert("enter message before clicking send");return false;}
    addMessage(username, msg);
    setTimeout(function() {botRespond();}, 2000);
  });
});

HTML

<div id="chatContainer">

</div>

<div id="chatControls">
  <textarea id="chatTextBox" placeholder = "Enter your message       
  here...">
  </textarea>
  <button id="chatSend">Send</button>
</div>

CSS

#chatContainer{
    width: 95%;
    height: 65px;
    background-color: white;
    border: 1px solid #333;
    margin: 0 auto;
    border-radius: 5px;
    margin-top: 10px;
    opacity: .9;
    overflow-y:scroll !important;
    padding: 5px;
}
#chatTextBox{
    resize: none;
    width: 65%;
    height: 35px !important;
    float: left;
    opacity: .9;
}
#chatControls{
    width: 100%;
    padding-left: 10px;
    padding-right: 10px;
    display: inline-block;
}
#chatSend{
    resize: none !important;
    width: 50%;
    height: 35px !important;
    display: inline-block;
    max-width: 30%;
    float: right;
    opacity: .9;
    padding: 5px;
}


.message > span {
    color: red;
    font-weight: bold;
}
.chatBot{
    color: #484d97;
    font-weight:  bold;
}
.message {margin-top: 4px;}
.message.mine {
   color: black;   
}
.message.bot {
   color: gray;   
}
.message.bot>span {
   color: green;   
}