2013-04-07 63 views
0

我正在使用jquery在textarea旁邊顯示行。 從這個鏈接: http://alan.blog-city.com/jquerylinedtextarea.htm更改在textarea中選擇的行

有什麼辦法來改變所選行,所以每次用戶進入到下一行的行選擇改變當前行。

$(function() 
{ 
    // Target all classed with ".lined" 
    $(".lined").linedtextarea(
    { 
     //change it from 1 to the current line that the user on. 
     selectedLine: 1 
    }); 

    // Target a single one 
    $("#mytextarea").linedtextarea(); 

}); 
+0

任何人都有一個想法 – user2128334 2013-04-07 23:10:34

回答

0

沒錯,

function selectLine(n) { 
    if (n<1) return false; //If the total number of lines is known it is worth checking you are not above it either 
    $(".codelines .lineno.lineselect").removeClass("lineselect") 
    $(".codelines .lineno").eq(n-1).addClass("lineselect"); 
} 

了很多jQuery插件(當他們充滿jQuery的小部件),您可以使用「選項」的方法來做這種事情,就像$(".lined").linedtextarea("options",{selectedLine: 6})但看起來不像這個已經變成了一個小部件。這個解決方案有點類似於mod使用lineselect類來控制突出顯示的行號的事實。

我們做了一些檢查,以確保我們將使用一個理智的價值觀,從已經有的任何行中刪除高亮類,並將其添加到第n-1行號div(-1,因爲eq是從零開始的) 。

如果您在一頁上有多個內襯文本框,這將不起作用。如果是這種情況,我們需要添加另一個參數來定義哪一個目標和一些邏輯來處理。

+0

感謝您重播..我怎麼能應用它,而不是寫行......這裏是一個工作演示(http://jsfiddle.net/S2yn3/7/) – user2128334 2013-04-08 00:10:12

+0

我不確定我是否理解正確。那小提琴不使用linedtextarea? – 2013-04-08 00:18:12

+0

但是我可以看到你已經有了一個函數來查找插入符號的位置,並且通過分割「/ n」來查找行號。如果我是你,我會將它定義爲一個函數(getLineNumber可能),然後在線可以邏輯地改變的地方設置一些事件處理程序(click,keyup ...)來運行我在我的答案中的函數,它是您的函數提供的用於獲取行號的參數。例如'$(「#test」)。click(selectLine(parseInt(getLineNumber())));' – 2013-04-08 00:35:13