首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >改进我的聊天机器人?

改进我的聊天机器人?
EN

Stack Overflow用户
提问于 2014-01-13 16:14:10
回答 2查看 842关注 0票数 0

几个小时以来,我一直在关注一个关于如何设计自己的聊天机器人的YouTube教程,我发现自己陷入了困境。一切都进行得很顺利,除了我向聊天机器人输入某些内容时,它对它作出了响应,但没有显示我发送给它的消息,而且它只显示了聊天机器人发送给我的最后一条消息,而不是来自它或我的任何其他消息。到目前为止,这是我的聊天机器人的JsFiddle,有人知道为什么会发生这种情况吗?我能做些什么来解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-13 16:24:32

问题是,您通过调用#container而不是$().append来覆盖当前的HTML。您应该调用$().append将值添加到容器的当前HTML中,而不覆盖它。您还应该在每次尝试更改容器的HTML以用新行分隔消息之后添加<br>

这是你的JSFiddle:http://jsfiddle.net/3wySt/10/

Javascript

代码语言:javascript
复制
var username = "";

function send_message(message){
    $("#container").append("<span class=&bot&><b>Chatbot:</b> </span>" + message + "<br>"); //Notice the .append instead of .html and the <br>
}

function get_username(){
    send_message("Hello, what is your name?");
}

function ai(message){
    if (username.length < 3){
        username = message;
        send_message("Nice to meet you " + username + ", how are you doing?");
    }
}

$(function(){

    get_username();

    $("#textbox").keypress(function(event){
        if ( event.which == 13){
            if ( $("#enter").prop("checked") ){

                $("#send").click();
                event.preventDefault();

            }

        }

    });

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

        var username = "<span class=&quot;username&quot;>You: </span>";

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

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

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

        if (prevState.length > 3){
            prevState = prevState + "";
        }

        $("#container").html(prevState + username + newMessage + "<br>"); //Notice the <br>

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

        ai(newMessage);

    });

});
票数 0
EN

Stack Overflow用户

发布于 2014-01-13 16:20:47

更新Fiddle: http://jsfiddle.net/3wySt/9/

我已经更新了您的小提琴,问题在于它替换了整个html,而不是附加在它后面的函数:

代码语言:javascript
复制
function send_message(message){
    $("#container").html("<span class=&bot&><b>Chatbot:</b> </span>" + message);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21095999

复制
相关文章

相似问题

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