在 Chrome/Safari 中使用此 JSFiddle 测试 http://jsfiddle.net/YLqqE/
如果我输入“Hi”并按 Enter,文本首先出现在红色框中,然后向上移动到蓝色框中。
但是,如果我输入“Hi”,在框外单击blur()
它,然后单击文本并按 Enter,我会得到一个额外的空间。
为什么会出现额外的空间?我怎样才能防止这种情况发生?
在 Chrome/Safari 中使用此 JSFiddle 测试 http://jsfiddle.net/YLqqE/
如果我输入“Hi”并按 Enter,文本首先出现在红色框中,然后向上移动到蓝色框中。
但是,如果我输入“Hi”,在框外单击blur()
它,然后单击文本并按 Enter,我会得到一个额外的空间。
为什么会出现额外的空间?我怎样才能防止这种情况发生?
这很容易解决。就return false
在您的返回键逻辑之后,因此不会发生默认操作:
$(document).keydown(function(e){
switch(e.keyCode) {
case 13:
$('#msg').append(newEl.html());
newEl.html('')
return false;
}
});
当您按下回车键时,会在该 div 的 html 中添加一个换行符。要从 div 中删除换行符,请使用正则表达式将其删除:
$('#msg').append(newEl.html().replace(/(\r\n|\n|\r)/gm,""));