У меня есть панель, которую я рендеринга, используя следующий код.Панель Extjs. События клавиатуры
new Ext.Panel({
id: 'textPanel',
height: 1000,
width: 1200,
renderTo: Ext.getBody(),
html:"An HTML fragment, or a DomHelper specification to use as the layout element content. The HTML content is added after the component is rendered, so the document will not contain this HTML at the time the render event is fired. This content is inserted into the body before any configured contentEl is appended."
});
И затем я хочу прослушать событие, когда нажата клавиша ввода. Итак, я создаю KEYMAP следующим образом ...
var map = new Ext.KeyMap(Ext.getCmp('textPanel').body, {
key: Ext.EventObject.ENTER,
fn: onKeyPress,
// handler: onKeyPress,
scope: this
});
Но OnKeyPress функция не вызывается.
Я уже пробовал использовать
Ext.getCmp('textPanel').body.dom,
Ext.getCmp('textPanel').el.dom,
Ext.getCmp('textPanel').el
вместо
Ext.getCmp('textPanel').body
без успеха.
Если я использую «документ», тогда вызывается функция onKeyPress. то есть
var map = new Ext.KeyMap(document, {
key: Ext.EventObject.ENTER,
fn: onKeyPress,
// handler: onKeyPress,
scope: this
});
Это прекрасно работает, но я не хочу слушать весь документ. Как я могу слушать только панель?
Что вы имеете в виду «слушать панели»? Предполагается ли ваша панель быть «TextField»? Не имеет смысла слушать ключевое событие только на обычном 'Ext.Panel' ... – kevhender
Моя панель имеет текст в своем теле. И я хочу что-то сделать, когда в теле панели нажата клавиша ввода или клавиши вкладок. –