隐藏它后,我无法显示一个被定义为类级别的窗口。 我需要使用show&在必要时隐藏它。
这是我到目前为止所尝试的内容:
isCapsLock 大写锁定开/关处理的实用程序功能:
function(e) {
e = (e) ? e : window.event;
var charCode = false;
if (e.which) {
charCode = e.which;
} else if (e.keyCode) {
charCode = e.keyCode;
}
var shifton = false;
if (e.shiftKey) {
shifton = e.shiftKey;
} else if (e.modifiers) {
shifton = !!(e.modifiers & 4);
}
if (charCode >= 97 && charCode <= 122 && shifton) {
return true;
}
if (charCode >= 65 && charCode <= 90 && !shifton) {
return true;
}
return false;
}
Ext.define('MyApp.controller.LoginController', {
extend : 'Ext.app.Controller',
views : [ 'notification.CapsLockNotification' ],
refs : [{
ref : 'capsLockNotification',
selector: 'capslocknotification'
}],
init : function() {
this.capsLockNotification = Ext.widget('capslocknotification');
this.control({
'loginform #password' : {
keypress : this.handleCapsLock
}
// control logic goes here
});
},
handleCapsLock : function(field, eOpts) {
var win = this.getCapsLockNotification();
if(ExtUtil.isCapsLock(eOpts)) {
win.show();
} else {
win.hide();
}
}
});
答案 0 :(得分:0)
检查选择器是否返回正确的组件。 使var赢得全球化: handleCapsLock:function(field,eOpts){ win = this.getCapsLockNotification(); if(ExtUtil.isCapsLock(eOpts)){ win.show(); } else { win.hide(); } } 并在firefox上打开firebug控制台或在Chrome上打开开发人员工具控制台(均使用CTRL + SHIFT + J) 在控制台中写: console.info(赢); console.info(赢的$ className); 检查是否未定义或 null 且类名正确