1

我在这里使用弹性插件是我正在使用的 jQuery:

 <script type="text/javascript">
    jQuery(function(){
    jQuery('textarea').elastic();
    });
 </script>

我在代码中使用了 5 个文本区域。因此,当用户位于 textarea1 时,可以说他按 Enter 10 次并展开 textarea。当他点击第二个 textarea 或点击 textarea1 外部时,有没有办法让 textarea1 恢复到原来的大小?

也能做到这一点的对立面吗?如果 textarea1 有 3 行。单击文本区域可以将大小增加到 5 行吗?

4

1 回答 1

0

取消绑定/重新绑定弹性事件可能有一种优雅的方法,但是为了快速强制覆盖,您可以使用该!important属性来覆盖文本区域高度上的 CSS。

创建一个带有rows属性的 textarea(这样我们就知道将 textarea 恢复到什么大小):

<textarea rows="4"></textarea>

将焦点/模糊功能附加到文本区域以覆盖/重置高度:

jQuery(function() {
    $('textarea').focus(function() {
        // remove any height overrides
        $(this).css('height', '');
        // make it elastic
        $('textarea').elastic();
    });
    $('textarea').blur(function() {
       // override the height on the textarea to force it back to its original height
       $(this).css('height', $(this).attr("rows") + 'em !important'); 
    });
});
于 2011-07-26T18:25:16.890 回答