2009-07-28 65 views
1

我只是想學習jQuery,我想知道如何弄清楚什麼時候,給定一堆文本在textarea,是用戶在結束時textarea並嘗試點擊。例如,文本的最後一行是asdf,當用戶在那一行,並按下箭頭鍵時,我想獲得某種事件,或者至少能夠弄清楚我們是否是在最後一行,並做一個動作(例如,環繞和去第一行)jQuery的檢測當我們在文本結尾的文本區

如果任何人有一些想法如何做到這一點,將不勝感激!

傑森

回答

0

如果你試圖當用戶填寫它來調整textarea的,有是一個jQuery插件,它已經:

plugins.jquery.com/project/TextAreaResizer

+0

非常感謝!但是,當它填滿時它不會自動調整大小,用戶必須拖動它。我基本上正在尋找一種方法來檢測用戶何時填滿了textarea,並在發生這種情況時做些什麼。 – FurtiveFelon 2009-07-28 23:06:38

-1

如果你想要的文字區域擴大在用戶填寫起來,你可以做這樣的事情:

function resizeTextarea(textarea) { 
    var defaultHeight = 150; 
    var lines = textarea.val().split("\n"); 
    var count = lines.length; 
    $.each(lines, function() { 
     count += parseInt(this.length/70); 
    }); 
    var currHeight = textarea.height(); 
    var rows = parseInt(currHeight/20) - 1; 

    if (count > rows && currHeight < 600) { // Increase height unless 600 or higher 
     textarea.css("height", (currHeight + (defaultHeight/2))); 
    } 
    else if (((count + 7) <= rows) && (currHeight > defaultHeight) && (count > 5)) { // Decrease height 
     textarea.css("height", (currHeight - (defaultHeight/2))); 
    } 
    else if ((count <= rows) && (count <= 5)) { // If less than 5 rows, use default height 
     textarea.css("height", defaultHeight); 
    } 
} 
$('textarea.resizable').each(function() { 
    $(this).bind("keypress input beforepaste", function(){ 
     resizeTextarea(event.target); 
    }); 
    resizeTextarea($(this)); // Initial refresh 
});