我无法覆盖Ext.util.Floating类中的函数'onmousedown‘。下面给出了示例。如果我想用'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'));
}
}
});发布于 2018-08-08 22:46:43
类'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'));
}
}
});https://stackoverflow.com/questions/51710034
复制相似问题