4

我想显示一个 ExtJS ToolTip 作为单击按钮的结果。当用户单击“X”或第二次单击按钮时,工具提示应该消失(注意我没有说“隐藏”)。如果用户第三次单击该按钮,提示应该会再次出现。

我的问题是,如果您将鼠标悬停在按钮上,则会显示工具提示。(见小提琴)我只想要它作为按钮点击的结果。

我已经尝试在组件上调用“remove()”以在“onbeforeclose()”和“beforehide()”事件中将其从 DOM 中删除,但提示仍然显示在悬停时。

我还想指出,从文档中调用“close()”方法实际上并不会触发“onbeforeclose()”事件——这对我来说真的没有意义......

所有 Sencha 示例都显示悬停提示。甚至可以在点击事件后只显示提示吗?

这是小提琴的代码:

function onClick() {
    window.Ext.create('Ext.tip.ToolTip', {
        target: 'div123',
        html: 'I am a tip',
        autoShow: true,
        autoScroll: true,
        focusOnToFront: true,
        autoHide: true,
        closable: true
    });
}

window.Ext.create('Ext.Button', {
    id: 'btn123',
    renderTo: 'div123',
    text: 'click me',
    width: '100px',
    handler: onClick
});

我还想提一下,我知道每次单击按钮时我都会创建一个新的工具提示。我知道这是理想的行为。我的问题是,我希望每次单击时都显示一个新提示 - 不要在悬停时显示旧提示。

  1. 文档
  2. ExtJS 示例
  3. 我的小提琴
4

1 回答 1

3

删除target,将没有任何东西可以悬停。

使用该Ext.tooltip.Tooltip#show方法在需要时显示您的工具提示。

保留对创建的工具提示的引用,以便在需要时能够使用destroy它。

查看您更新的小提琴

最后,您确定要自动隐藏工具提示吗?这似乎不符合你想要实现的整体目标......

于 2013-08-21T20:29:00.980 回答