1

在 Chrome/Safari 中使用此 JSFiddle 测试 http://jsfiddle.net/YLqqE/

如果我输入“Hi”并按 Enter,文本首先出现在红色框中,然后向上移动到蓝色框中。

但是,如果我输入“Hi”,在框外单击blur()它,然后单击文本并按 Enter,我会得到一个额外的空间。

为什么会出现额外的空间?我怎样才能防止这种情况发生?

4

2 回答 2

2

这很容易解决。就return false在您的返回键逻辑之后,因此不会发生默认操作:

http://jsfiddle.net/YLqqE/2/

$(document).keydown(function(e){
    switch(e.keyCode) {
      case 13:
        $('#msg').append(newEl.html());
        newEl.html('')
        return false;
    }
});
于 2013-07-31T22:19:51.047 回答
0

当您按下回车键时,会在该 div 的 html 中添加一个换行符。要从 div 中删除换行符,请使用正则表达式将其删除:
$('#msg').append(newEl.html().replace(/(\r\n|\n|\r)/gm,""));

小提琴

于 2013-07-31T22:20:28.413 回答