我在jquery选项卡界面中使用ajax.org中的ace编辑器组件。 每个选项卡都包含一个单独的ace编辑器。每当我切换到新选项卡时,其中的编辑器都无法获得焦点。
我可以通过绑定到jquery UI的“tabsshow”事件来检测何时选择了选项卡。如果我的编辑器div的id是editor-tab-0,那么有没有人知道如何将焦点设置到其中的编辑器中 对于第一个标签,依此类推......?
请帮助一下吗?
答案 0 :(得分:35)
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
答案 1 :(得分:12)
专注于结束:
editor.focus();
editor.navigateFileEnd();
感谢@ a-user
答案 2 :(得分: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);
答案 3 :(得分: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();
}
答案 4 :(得分:0)
我在Ace编辑器中使用JQuery,我发现以下代码对我来说非常好用。 PS:我的代码编辑器窗口在iframe中:
$('#modelFrame').mouseover(function() {
try {
$(this).get(0).contentWindow.editor.focus();
} catch (doNothing) {
;;
}
});