2013-10-10 49 views
4

當工具提示處於活動/專注狀態並且destroy事件被調用時,工具提示獲取不透明度0,但仍然可點擊並且其元素仍在DOM中。工具提示在銷燬事件後不會從DOM中刪除

這個問題在Demo中複製: 單擊測試按鈕時,工具提示會被「銷燬」,但它仍然在DOM中並阻止文本輸入中的事件。

這是正常行爲嗎?任何清理解決方法?

UPD:似乎是一個已知的issue

+0

@Dvir,這是一個跨瀏覽器問題 –

回答

6

怎麼樣,如果你使用disable代替destroy

Fiddle

+0

哦,不錯,我試圖禁用**和**之前破壞,但它沒有按預期工作。你的解決方案工作得很好。 –

+0

除了使用隱藏選項之外,您可能會嘗試使用該選項,以便它實際上隱藏在點擊上,而不必移出......我試圖這樣做,但出於某種原因,它沒有隱藏彈出窗口: –

+0

那麼,對我來說,禁用和銷燬幾乎有相同的實用工具。兩者都將使它不再顯示:)我喜歡你的解決方法,雖然 –

5

是的,有一種變通方法。從您的標記中刪除data-toggle="tooltip"。這就是導致工具提示再次顯示的原因。因爲引導程序偵聽的工具提示上仍然有數據屬性。您在js中的構造函數就足夠了,將工具提示和工具提示構造函數的data-*都放在JS中是沒有必要的。

<input id="testBtn" class="btn btn-default" type="button" value="Test" title="Test Destroy Event"/> 

Demo

更新

它是在舊版本的引導的一個bug,因此,要解決它在舊的版本,你可以通過數據抓取它刪除$尖端元件。

 var $this = $(this); 
     $this.data('bs.tooltip').$tip.remove(); //remove the tip element. 
     $this.tooltip('destroy'); //destroy it now. 

Demo

記住即使禁用的元件,但它仍然保持在元件中的數據,以及該元件的自舉內供以後使用的可能性的參考這是不必要

+0

對不起,您的演示中仍存在相同的問題。 –

+0

即使你禁用了它,它仍然保存着元素上的工具提示數據,這意味着當你不需要它時,它不會銷燬它們。所以這個BS錯誤應該有一個真正的解決方法。 – PSL

+0

演示中沒有工具提示數據。我不認爲你是對的。 –

相關問題