2016-08-29 44 views
-2

我有一個文本元素,顯示文本被截斷時的工具提示。當元素的文本不再被截斷時,我想刪除工具提示。問題是我無法進入工具提示事件。我通過將屬性設置爲截斷元素來添加工具提示。但是,刪除該屬性不會刪除該事件,並且工具提示仍然顯示。我正在使用Angular bootstrap tooltip。 我搜索了互聯網和removeEventListener()沒有幫助,因爲我沒有tooltip事件處理程序。我能夠使用和使用的唯一解決方法是在隱藏工具提示的元素上觸發事件mouseleave,而不是將其移除。我認爲這不是一個好的做法,我需要刪除該事件。 順便說一句,我只使用角度和JavaScript,沒有jQuery。從元素中刪除工具提示事件

任何想法如何做到這一點?

編輯: 我的元素是這樣的:

<span>Here goes the text</span> 

並添加工具提示的元素看起來像這樣

<span uib-tooltip="Here goes the text" tooltip-append-to-body="true" tooltip-placement="bottom">Here goes the text</span> 
+0

發佈您的HTML代碼。 – FDavidov

+0

我編輯了這個問題,並添加了html代碼 – HannaB

回答

1

後,您應提供屬性tooltip-enable表達式,如果文本將返回截斷與否。這可以很容易地確定如下:https://stackoverflow.com/a/143889/2337927。請記住,由於security issues,您不能直接在角度表達式中使用DOM元素。你想要做的是,例如登記在控制器isTextOverflowing功能和表達叫它:tooltip-enable="vm.isTextOverflowing()"


編輯

如果你是積極的,你想要的是徹底刪除事件偵聽器,然後我恐怕這將涉及編寫一個decorator,但在真正混亂(甚至哈克)但如果你想要的只是關閉工具提示文本變得完全可見時很容易完成使用tooltip-enabletooltip-is-open的組合,如shown in this plunk

+0

我給你一個有用的答案,因爲你的答案很好,但它不是我正在尋找的。如果可能,我需要刪除附加到該元素的事件。 – HannaB

+0

通過刪除事件你的意思是刪除事件監聽器或關閉工具提示時,文本變得完全可見(不截斷)? –

+0

另請參閱我編輯的答案:) –