如何检测线条何时自动包裹在textarea中?

Chr*_*tez 5 html javascript jquery

在文本区域中输入文本并且它变得比区域宽时,文本将被包裹到下一行.有没有办法可以通过编程方式确定何时发生这种情况?

Jiv*_*ngs 5

发生换行时不会触发实际事件,但如果您知道文本区域的宽度,则可以破解解决方案。

侦听文本区域上的更改事件并将文本传输到换行到其内容的 div 中;

<div class="textwidth"></div>
Run Code Online (Sandbox Code Playgroud)

搭配风格:

.textwidth {
  position: absolute;
  visibility: hidden;
  height: auto;
  width: auto;
}
Run Code Online (Sandbox Code Playgroud)

使用文本内容计算 div 的宽度,并将其与文本区域的恒定宽度进行比较:

$('textarea').on('keyup', function() {
  var lastLine = $(this).val().split('/n').pop();
  var width = $('.textwidth').text(lastLine).width(); 
  if ( width >  $('textarea').width() ) {
    // fire wrap event
  }
});
Run Code Online (Sandbox Code Playgroud)

这里有一些粗制滥造的小提琴,应该可以让您了解如何继续:http://jsfiddle.net/cXbAh/1/