检测contenteditable div何时有多行文本

时间:2014-06-05 12:19:01

标签: jquery html contenteditable

我在页面上使用了contenteditable。当用户聚焦div时,高度设置为js。 (需要显示对此问题不感兴趣的按钮)如果用户键入大量文本,以便推送多行,则它会溢出框并隐藏。如何检测何时添加或删除其他行?谢谢!

<小时/> HTML:<div id="edit" contenteditable="true">I can be edited.</div>

jQuery的:

$("#edit").focus(function(){
    t=$(this);
    t.css('height',t.height()+10);
}).blur(function(){
    $(this).css('height','');  
});

演示:http://jsfiddle.net/f8D4b/

2 个答案:

答案 0 :(得分:2)

尝试此方法,将高度设置为“auto”以覆盖css设置,然后在每个keyup事件(demo)后设置高度:

$("#edit").on('focus keyup', function () {
    var t = $(this);
    t.css('height', 'auto');
    t.css('height', t.height() + 10);
}).on('blur', function () {
    $(this).css('height', '');
});

答案 1 :(得分:1)

您不需要检测何时添加或删除其他行,您只需要修改以下代码。

$("#edit").focus(function(){
    t=$(this);
    t.css('min-height',t.height()+10);
}).blur(function(){
  $(this).css('min-height','');  
});

检查更新fiddle