Я разрабатываю проект, в котором мне нужен ace-editor, интегрированный с эмулятором терминала; все проблемы проиллюстрированы здесь
Проблемы отсутствуют, когда человеческое взаимодействие терпит неудачу: пользователь зависает в терминале и редакторе, пока не покинет страницу. Я хочу установить .focus() для элемента "hoved" и .blur() для элемента "not hoved". На терминал работает нормально, бот ace-editor не фокусируется. Я не могу вставить некоторые символы в редактор.
Видимо jquery здесь не работает:
$('#terminal').hover(function(){
TermGlobals.setFocus(true);
}, function(){
TermGlobals.setFocus(false);
})
$('#coffee_editor > textarea').hover(function(){
window.editor.focus();
}, function(){
window.editor.blur();
})
У кого-то есть четкое представление, почему это не работает должным образом?
Спасибо за все
РЕШЕНО!
Я помню RTFM
7.2 TermGlobals.keylock (Global Locking Flag)
The global flag `TermGlobals.keylock' allows temporary keyboard locking without any
other change of state. Use this to free the keyboard for any other resources.
(added in v.1.03)
Поэтому я добавил следующее в jsfiddle:
$('#terminal').hover(function () {
TermGlobals.keylock = false;
term.focus();
}, function () {
TermGlobals.setFocus(false);
});
$('#coffee_editor').hover(function () {
TermGlobals.keylock = true;
window.editor.focus();
}, function () {
window.editor.blur();
});
Странно то, что jsfiddle работает неправильно, но в мой проект работает очень хорошо. Я запускаю сервер Rails, а jsfiddle работает внутри <iframe>
; почему такая разница в работе?