2017-12-04 33 views
1

私はエースエディタで改行イベントをキャプチャしようとしています。ユーザーがEnterを押すたびに行が変わり、console.logに現在の行番号が表示されます。次のコードを実行しようとしています。エースエディタでライン変更イベントを検出するにはどうすればよいですか?

editor.getSession().getRowLength().on('change', function(event) { 
    if (lineno ==1){ 
     //execute abc} 
    else if (lineno==2){ 
     //execute xyz} 
}); 

私は

tryit-ide.js:20 Uncaught TypeError: editor.getSession(...).getRowLength(...).on is not a function 
at tryit-ide.js:20 
at setUp (arch_ace-editor.js?hash=d1163619d62832acc5c961ddb94093c49630a447:78) 
at callback (arch_ace-editor.js?hash=d1163619d62832acc5c961ddb94093c49630a447:98) 
at arch_ace-editor.js?hash=d1163619d62832acc5c961ddb94093c49630a447:111 
at XMLHttpRequest.request.onreadystatechange (arch_ace-editor.js?hash=d1163619d62832acc5c961ddb94093c49630a447:53) 

次のエラーを取得するには、ありがとうございます。

答えて

0

このエラーは、数字にイベントリスナーを追加しているというエラーに過ぎません。お試しください

editor.session.on('change', function(delta) { 
    var lineno = delta.start.row 
    if (lineno ==1){ 
     //execute abc} 
    else if (lineno==2){ 
     //execute xyz} 
}); 
+0

ありがとうございます。たぶん私は自分の問題を正しく説明していないかもしれません。問題は、行に何かが挿入されるたびにエディタが行番号で「abc」を実行するのに対し、ユーザが行1を入力すると一度だけ実行し、行2を入力すると実行を停止することです。 –

+0

ありません変更イベントを使用し、変更された行を見つけるためにdelta.start.rowを使用する必要があります。 –

+0

またはカーソルが1行目に移動していますか? –

関連する問題