我无法从类中覆盖函数“ onmousedown” Ext.util.Floating。 示例如下。 如果我想覆盖前缀为“ on”的功能,是否可以遵循一些模式? 构造函数正在从覆盖的代码块中调用,但是'onMouseDown'仍恢复为ext-all-debug文件。
Ext.define('Ext.util.Floating.override', {
override: 'Ext.util.Floating',
constructor: function(){console.log('onmousedown: This gets invoked.')},
onMouseDown: function (e) {
console.log('OverrideOnMouseDown');
var focusTask = this.focusTask;
if (this.floating && (!focusTask || !focusTask.id)) {
this.toFront(!!e.getTarget(':focusable'));
}
}
});
答案 0 :(得分:0)
“ Ext.util.Floating”类的构造函数经过硬编码,可以选择方法“ onMouseDown”,而无需检查任何替代。
我也覆盖了构造函数,并实现了对onMouseDown存在的覆盖检查。
Ext.define('Ext.util.Floating.override', {
override: 'Ext.util.Floating',
constructor: function(){
.
.
.
me.mon(me.el, {
//redirects to the overridden method we provided.
mousedown: me.mixins.floating.onMouseDown ? me.mixins.floating.onMouseDown: me.onMouseDown,
scope: me
});
.
.
.
},
onMouseDown: function (e) {
console.log('OverrideOnMouseDown');
var focusTask = this.focusTask;
if (this.floating && (!focusTask || !focusTask.id)) {
this.toFront(!!e.getTarget(':focusable'));
}
}
});