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

时间:2011-04-28 09:42:23

标签: 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];
        }
    })
});

2 个答案:

答案 0 :(得分:4)

Ext元素只能传递文档中指定的配置选项; getTargetXY不是其中一种选择。

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

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

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

要覆盖工具提示:

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);
}