2013-04-07 2 views
0

jquery를 사용하여 텍스트 영역 옆에 선을 표시하고 있습니다. 이 링크에서 : http://alan.blog-city.com/jquerylinedtextarea.htm텍스트 영역에서 선택한 행을 변경하십시오.

그렇게 할 때마다 사용자가 행이 현재 행에 대한 변경을 선택한 다음 행으로 이동,이 선택된 줄을 변경 할 수있는 방법입니다.

$(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

답변

0

네, (그들은 jQuery를 위젯에 가득)의 jQuery 플러그인의 많은

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"); 
} 

당신이 $(".lined").linedtextarea("options",{selectedLine: 6})하지만 같은 이런 종류의 작업을 수행 할 "옵션"방법을 사용할 수 있습니다 이것이 위젯으로 변한 것처럼 보이지 않습니다. 이 해결책은 모드가 lineselect 클래스를 사용하여 강조 표시되는 행 번호를 제어한다는 사실에서 리버스 엔지니어링 된 것입니다.

우리는 sane 값을 사용하는지 확인하고 이미있는 행에서 강조 표시 클래스를 제거한 다음 n-1 번째 행 번호 div에 추가합니다 (eq는 0 기준이므로 -1) .

한 페이지에 여러 줄의 텍스트 상자가있는 경우 작동하지 않습니다. 그렇다면 목표로 지정할 매개 변수와이를 처리 할 논리를 정의하기 위해 다른 매개 변수를 추가해야합니다.

+0

재생 해 주셔서 감사합니다. 어떻게해야 필자에게 줄을 쓰는 대신 적용 할 수 있습니까? 여기서는 작동하는 데모가 있습니다 (http://jsfiddle.net/S2yn3/7/) – user2128334

+0

나는 제대로 이해하는지 모르겠다. 그 바이올린은 줄이있는 텍스트 영역을 사용하지 않습니까? –

+0

그러나 나는 당신이 이미 캐럿의 위치를 ​​찾는 함수를 가지고 있다는 것을 알 수있다. 그리고 당신은 "/ n"을 나누어서 그것으로부터 라인 번호를 찾고있다. 내가 당신이라면 그 함수 (getLineNumber 어쩌면)로 정의한 다음 줄을 논리적으로 변경할 수있는 장소 (click, keyup ...)에서 일부 이벤트 처리기를 설정하여 내 대답에있는 함수를 실행합니다. 이 함수는 줄 번호를 얻기 위해 함수에서 제공 한 매개 변수입니다. 예 :'$ ("# test"). click (selectLine (parseInt (getLineNumber()))); –

관련 문제