bootstrap自身帶有tooltip,使用起來很方便,但是美中不足,它的tooltip並不支持換行。
比如我們通過<textarea>輸入框傳入到數據庫的長文本,文本是帶有換行符的,但是一旦使用tooltip將它展示出來,換行效果就不見了。
實際上,這解決起來並不難。
在bootstrap.js中,查詢tooltip,先找到控制tooltip的代碼大概在哪塊,然后閱讀。
會找到這樣一段代碼:
1 Tooltip.DEFAULTS = { 2 animation: true, 3 placement: 'top', 4 selector: false, 5 template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', 6 trigger: 'hover focus', 7 title: '', 8 delay: 0, 9 html: false, 10 container: false, 11 viewport: { 12 selector: 'body', 13 padding: 0 14 } 15 }
稍作調試,發現這確實是對tooltip的配置。
然后將:
template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',
修改為:
template: '<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><pre class="tooltip-inner"></pre></div>',
也就是將原本用div標簽包裹的內容,替換成用pre標簽包裹,測試一看,確實OK了。
對於一些框架的使用者來說,往往因為框架的代碼復雜而且多,出現了問題之后不會或者不願意去排查框架的問題。其實只要靜下心去看,多數問題都是能解決的。