2016-05-19 168 views
0

我想讓我的textarea滾動到底部,如果插入新文本。但我無法讓它工作。textarea自動滾動到底部

HTML

<textarea id="txt-area" readonly rows="21" cols="48"></textarea> 
<button class="buttons" value="1">1</button> 
<button class="buttons" value="2">2</button> 
<button class="buttons" value="3">3</button> 
<button class="buttons" value="4">4</button> 
<input type="button" class="buttons" value="Test"> 
<input type="button" class="Backspace" value="DEL"> 

的JavaScript

var values = []; 

$(document).ready(function() { 
    $(".buttons").click(function() { 
     var cntrl = $(this).html(); 
     if ($(this)[0].nodeName == "INPUT") 
     { 
       cntrl = $(this).attr("value"); 
     } 

     $("#txt-area").val(function (_, val){ 
      return val + cntrl 
     }); 
     values.push($(this).val()); 
     $("#txt-area").val(values.join("\n")); 
    }); 
      $('.Backspace').on('click', function() { 
      values.pop(); 
      $('#txt-area').val(values.join("\n")); 
     }); 
}); 

$(document).ready(function(){ 
    $(".buttons").click(function(){ 
     $('#txt-area').scrollTop($('#txt-area').scrollHeight);  
    }); 

}); 

我的代碼也正是在這種jsFiddle

+0

可能的複製[http://stackoverflow.com/questions/7381817/how-do-i-確定-rollheight] – ozil

+0

可能重複[如何讓textarea在更新時保持滾動到底部](https://stackoverflow.com/questions/7373081/how-to-have-a-textarea-to-keep-滾動到底的時候更新) – LoganMzz

回答

0

您需要更改

$('#txt-area').scrollTop($('#txt-area').scrollHeight);  

$('#txt-area').scrollTop($('#txt-area')[0].scrollHeight);  

http://jsfiddle.net/cPYCV/48/

+0

確實,做一個日誌$('#txt-area')。scrollHeight'輸出'undefined' – seza443

0

添加到您的JavaScript

window.setInterval(function() { 
    var elem = document.getElementById('txt-area'); 
    elem.scrollTop = elem.scrollHeight; 
}, 1000);