2013-08-21 51 views
3

我想顯示一個ExtJS工具提示作爲點擊按鈕的結果。當用戶點擊「X」或第二次點擊按鈕時,工具提示應該消失(注意我沒有說「隱藏」)。如果用戶第三次點擊該按鈕,提示應該再次出現。僅在點擊時顯示ExtJS工具提示

我的問題是,如果你將鼠標懸停在按鈕上,工具提示顯示出來。 (請參閱小提琴)我只希望它是點擊按鈕的結果。

我曾嘗試在組件上調用「remove()」以將其從「onbeforeclose()」和「beforehide()」事件中的DOM中移除,但提示仍然顯示在懸停上。

我也想指出,調用「關閉()」從文檔方法實際上並沒有觸發「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. Documentation
  2. ExtJS Examples
  3. My fiddle

回答

3

取出target會有什麼徘徊。使用Ext.tooltip.Tooltip#show方法在需要時顯示工具提示。

保留對創建的工具提示的引用,以便在需要時能夠destroy

查看您的updated fiddle

最後,你確定你想讓你的工具提示自動隱藏嗎?這似乎不符合你想要實現的總體...

+0

這正是我所期待的。我不知道給它一個目標是罪魁禍首。我還錯過了'destroy()'部分 - 我只是使用刪除並將我的提示分配給null。非常感謝你。 – spots

相關問題