何らかの理由で、フローティングパネルの下にフォーカスが失われても、ブラーイベントが発生しません。しかし、ブラーイベントのパネルの 'el'を聞くと、リスナー設定に表示されるように登録されます。私がしたいことは、ブラーイベントが発生したときにパネルを非表示にすることです。親パネルへのアクセス方法を教えてください。親コンポーネントExtJSにアクセスするには?
Ext.define('NoteKeeper.view.tabs.AttachmentPanel',{
extend : 'Ext.panel.Panel',
alias : 'widget.attachmentPanel',
itemId : 'attachmentPanel',
floating : true,
focusable : true,
width : 200,
height : 150,
layout : {
type : 'vbox'
},
items : [
{
xtype : 'grid',
store : null,
columns : [
{
text : 'File Name',
dataIndex : 'fileName'
},
{
dataIndex : 'remove'
}
]
},
{
xtype : 'button',
text : '+'
}
],
listeners : {
el: {
blur: {
fn: function()
{
console.log(this);
//how do I access the 'attachmentPanel' from here
//so I can hide it ?
}
}
}
},
noteId : null,
initComponent : function()
{
this.callParent(arguments);
}
});
これらの 'attachmentPanel'のインスタンスが複数存在することがあります。
は 'focusleave'を使用しますイベント:コンポーネント:https://fiddle.sencha.com/#view/editor&fiddle/25d2 –
@EvanTrimboli残念ながら、上記は機能しません。 +記号とフローティングパネルのどこかをクリックすると、ブラーイベントはまだ発生します。表示されるのは、パネル自体ではなく、パネル内部のボタンにフォーカスが置かれているようです。ぼかしをelにアタッチすると、より効果的ですが、ボタンをクリックすると、elにフォーカスが失われます。あなたはその周りに道を知っていますか? – Pepria