Extjs 4 버튼 바 인 딩 키보드 버튼
// js , :
//
Ext.ux.ToolbarKeyMap = Ext.extend(Object, (function() {
var kb,
owner,
mappings;
function addKeyBinding(c) {
if (kb = c.keyBinding) {
delete c.keyBinding;
if (!kb.fn && c.handler) {
kb.fn = function(k, e) {
e.preventDefault();
e.stopEvent();
c.handler.call(c.scope, c, e);
}
}
mappings.push(kb);
var t = [];
if (kb.ctrl) t.push('Ctrl');
if (kb.alt) t.push('Alt');
if (kb.shift) t.push('Shift');
t.push(kb.key.toUpperCase());
c.hotKey = t.join('+');
c.showHotKey = kb.showHotKey;
if (c instanceof Ext.menu.Item) {
c.onRender = Ext.Function.createSequence(c.onRender,addMenuItemHotKey);
} else if ((c instanceof Ext.Button) && (c.showHotKey)) {
c.onRender = Ext.Function.createSequence(c.onRender,addButtonHotKey);
}
}
if ((c instanceof Ext.Button) && c.menu) {
c.menu.cascade(addKeyBinding);
}
}
function findKeyNavs() {
delete this.onRender;
if (owner = this.ownerCt) {
mappings = [];
this.cascade(addKeyBinding);
if (!owner.menuKeyMap) {
//owner.menuKeyMap = new Ext.KeyMap(owner.el, mappings);
var target = document;
if((mappings[0].global!=null)&&(mappings[0].global==false))
{
target=owner.el;
}
owner.menuKeyMap = new Ext.KeyMap(target, mappings);
owner.el.dom.tabIndex = 0;
} else {
owner.menuKeyMap.addBinding(mappings);
}
}
}
function addMenuItemHotKey() {
delete this.onRender;
if((this.showHotKey!=null)&&(this.showHotKey == false))
return;
this.el.child('.x-menu-item-link').setStyle({
overflow: 'hidden',
zoom: 1
});
this.el.child('.x-menu-item-link').child('.x-menu-item-text').setStyle({
'float': 'left'
});
this.el.child('.x-menu-item-link').createChild({
style: {
padding: '0px 0px 0px 15px',
float: 'right'
},
html: this.hotKey
});
}
function addButtonHotKey() {
delete this.onRender;
if((this.showHotKey!=null)&&(this.showHotKey == false))
return;
var p = this.btnEl.up('');
p.setStyle({
overflow: 'hidden',
zoom: 1
});
if(p.up('td')!=null)
p.up('td').setStyle('text-align', 'left');
this.btnEl.setStyle('.x-menu-item-text').setStyle({
'float': 'left'
});
p = p.createChild({
style: {
padding: '0px 0px 0px 15px',
float: 'right',
position: 'relative',
bottom: Ext.isWebKit ? '-1px' : '-2px'
},
html: this.hotKey
});
}
return {
init: function(toolbar) {
toolbar.onRender = Ext.Function.createSequence(toolbar.onRender,findKeyNavs);
toolbar.doLayout = Ext.Function.createSequence(toolbar.doLayout,findKeyNavs);
}
}
})());
사용 설명:
tbar:{
plugins: new Ext.ux.ToolbarKeyMap(),
items:[{
text: 'demo',
keyBinding: {
key: 'a',
alt: true
},
handler: demoClick
}]
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.