Jqueryタブインターフェイス内でajax.orgのaceエディターコンポーネントを使用しています。各タブには、個別のエースエディターが含まれます。新しいタブに切り替えるたびに、そのタブのエディターにフォーカスが移りません。
Jquery UIの「tabsshow」イベントにバインドすることで、タブが選択されたことを検出できます。私のエディターdivのIDが最初のタブのeditor-tab-0である場合、その中のエディターにフォーカスを設定する方法を知っている人はいますか?
助けてもらえますか?
editor.focus(); //To focus the ace editor
var n = editor.getSession().getValue().split("\n").length; // To count total no. of lines
editor.gotoLine(n); //Go to end of document
最後に焦点を合わせるには:
editor.focus();
editor.navigateFileEnd();
@ a-userに感謝
素晴らしい解決策ですが、最終行の先頭ではなく、最終行の末尾に移動したかったのです。
//To focus the ace editor
editor.focus();
session = editor.getSession();
//Get the number of lines
count = session.getLength();
//Go to end of the last line
editor.gotoLine(count, session.getLine(count-1).length);
以下は、jQuery UIタブのAce編集セッションにフォーカスを設定する私のコードからの抜粋です。
$('#tabs_div').tabs(
{
select : function(event, ui) {
var tabName = ui.panel.id;
var doc = docs.get(tabName); // look up the EditSession
var session = env.split.setSession(doc);
session.name = tabName;
env.editor.focus();
}
私はAceエディターでJQueryを使用しており、次のコードが本当にうまく機能していることがわかりました。 PS:コードエディターウィンドウはiframe内にあります:
$('#modelFrame').mouseover(function() {
try {
$(this).get(0).contentWindow.editor.focus();
} catch (doNothing) {
;;
}
});