41

jquery タブ インターフェイス内で ajax.org の ace エディター コンポーネントを使用しています。各タブには個別の ace エディターが含まれます。新しいタブに切り替えるたびに、その中のエディターがフォーカスされません。

jquery UIの「tabsshow」イベントにバインドすることで、タブが選択されたことを検出できます。私のエディター div の ID が最初のタブの editor-tab-0 であると言う場合、そのエディターにフォーカスを設定する方法を知っている人はいますか?

誰か助けてください。

4

5 に答える 5

37
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
于 2012-03-22T08:34:47.790 に答える
11

いい解決策ですが、最後の行の先頭ではなく、最後の行の最後に行きたかったのです。

//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);
于 2013-03-12T23:33:20.400 に答える
3

以下は、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();
            }
于 2011-08-15T16:47:26.880 に答える
0

私は Ace Editor で JQuery を使用していますが、次のコードが非常にうまく機能することがわかりました。PS: 私のコード エディター ウィンドウは iframe にあります:

$('#modelFrame').mouseover(function() {
    try {
        $(this).get(0).contentWindow.editor.focus();
    } catch (doNothing) {
        ;;
    }
});
于 2011-08-22T09:12:48.487 に答える