Как установить фокус на туз редактор? - PullRequest
35 голосов
/ 13 августа 2011

Я использую компонент редактор ace от ajax.org внутри интерфейса вкладки jquery.Каждая вкладка будет содержать отдельный редактор ace.Всякий раз, когда я переключаюсь на новую вкладку, редактор в ней не получает фокус.

Я могу определить, когда вкладка выбрана путем привязки к событию "tabsshow" в пользовательском интерфейсе jquery.Кто-нибудь знает, как установить в нем фокус редактора, если, скажем, идентификатором моего div редактора является editor-tab-0 для первой вкладки и т. Д.??

Пожалуйста, может кто-нибудь помочь

Ответы [ 5 ]

35 голосов
/ 22 марта 2012
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
12 голосов
/ 29 мая 2017

Чтобы сосредоточиться до конца:

editor.focus();
editor.navigateFileEnd();

Спасибо @ a-user

11 голосов
/ 13 марта 2013

Хорошее решение, но я хотел перейти к концу последней строки, а не к началу последней строки.

//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);
3 голосов
/ 15 августа 2011

Вот отрывок из моего кода, который фокусируется на сеансе редактирования Ace на вкладке пользовательского интерфейса jQuery:

    $('#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();
            }
0 голосов
/ 22 августа 2011

Я использую JQuery с Ace Editor, и я обнаружил, что следующий код работает очень хорошо для меня.PS: Окно редактора моего кода находится в Iframe:

$('#modelFrame').mouseover(function() {
    try {
        $(this).get(0).contentWindow.editor.focus();
    } catch (doNothing) {
        ;;
    }
});
...