我想更改工具提示的位置以在按钮上显示它。我尝试了ExtJs论坛中提到的下面的方法。它不起作用,我无法覆盖 getTargetXY 方法,工具提示始终显示在同一位置。你有任何解决方案吗?
this.desktopButton = new Ext.Button({
icon: "arrow_in.png",
scope: this,
handler: this.desktopButtonHandler,
tooltip: new Ext.ToolTip({
text: 'Message',
getTargetXY: function () {
return [100, 100];
}
})
});
答案 0 :(得分:4)
Ext元素只能传递文档中指定的配置选项; getTargetXY
不是其中一种选择。
如果要覆盖该方法,您有两种选择:
我不建议覆盖该方法,因为这可能会产生其他后果。但是,我将解释如何做到这两点。
要覆盖工具提示:
Ext.override(Ext.Tooltip, {
getTargetXY: function() {
return [100, 100]
}
});
扩展工具提示:
MyToolTip = Ext.Extend(Ext.Tooltip, {
constructor: function(config) {
var config = config || {};
if (config.getTargetXY) {
this.getTargetXY = config.getTargetXY;
}
MyToolTip.superclass.constructor.call(this, config);
}
});
答案 1 :(得分:0)
请注意,设置'targetXY'可能无济于事,因为Ext JS可能会覆盖此设置(取决于视图大小)。 覆盖“showAt”方法可以防止这种情况:
showAt:function() {
var xy = [this.getTargetXY()[0],this.getTargetXY()[1]-this.height]
MyTooltip.superclass.showAt.call(this, xy);
}