如何在 ExtJs 3.3 中更改工具提示的位置

Den*_*niz 2 extjs

我想更改工具提示的位置以将其显示在按钮上。我尝试了 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];
        }
    })
});
Run Code Online (Sandbox Code Playgroud)

NT3*_*3RP 5

Ext 元素只能传递文档中指定的配置选项;getTargetXY不是这些选项之一。

如果要覆盖该方法,您有两种选择:

  • 覆盖所有 Ext 工具提示以使用您的新功能
  • 扩展现有的 Tooltip 类以支持覆盖该方法

我不建议覆盖该方法,因为这可能会产生其他后果。但是,我将解释如何做到这两点。

要覆盖工具提示:

Ext.override(Ext.Tooltip, {
    getTargetXY: function() {
        return [100, 100]
    }
});
Run Code Online (Sandbox Code Playgroud)

要扩展工具提示:

MyToolTip = Ext.Extend(Ext.Tooltip, {
    constructor: function(config) {
        var config = config || {};
        if (config.getTargetXY) {
            this.getTargetXY = config.getTargetXY;
        }

        MyToolTip.superclass.constructor.call(this, config);
    }
});
Run Code Online (Sandbox Code Playgroud)