2013-03-18 67 views
11

我有一個HTML div元素,單擊時會顯示一個twitter引導彈出窗口。當前代碼看起來是這樣的:爲什麼html標題屬性和twitter引導數據原始標題互斥?

<div class="popover" title="supplementary info about html element" 
    data-original-title="popover title" data-content="popover content..."> 
</div> 

$(document).on('ready', function() { 
    App.Utils.Popover.enableAll(); 
}); 

App.Utils.Popover = { 
    enableAll: function() { 
    $('.popover').popover(
     { 
     trigger: 'click', 
     html : true, 
     container: 'body', 
     placement: 'right' 
     } 
    ); 
}; 

問題是,Twitter的引導需要的標題屬性值,並顯示作爲彈出,而不是使用數據原始標題的標題。任何方式使兩者按照預期一起工作?

+1

意圖是什麼? – Alohci 2013-03-18 22:36:28

+0

這可能有助於https://github.com/twbs/bootstrap/issues/15359 – 2016-07-25 07:35:17

回答

8

這是因爲彈出式JavaScript擴展了工具提示JavaScript,並且工具提示JavaScript是(我相信)旨在替換由title屬性設置的默認工具提示。

該代碼是罪魁禍首(在自舉-tooltip.js,像253ish)

, fixTitle: function() { 
    var $e = this.$element 
    if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') { 
    $e.attr('data-original-title', $e.attr('title') || '').attr('title', '') 
    } 
} 

其中如果有標題屬性,則數據原始所有權屬性由標題屬性替換。

編輯基本上我的答案是沒有簡單的方法。你將不得不修改引導js一點雖然我不會真的建議在這種情況下。也許使用可能沒有那個代碼的bootstrap popover的舊版本?

+0

我只會在github上發佈這個問題。非常感謝! – keruilin 2013-03-28 13:43:26

1

我有同樣的問題,無法使用不同的Bootstrap版本,所以我決定將我的功能注入popover原型。 不要在家裏試試這個:

<script src="bower_components/bootstrap-sass/js/bootstrap-popover.js"></script> 
<script type="text/javascript"> 
    // dirty hack 
    $.fn.popover.Constructor.prototype.fixTitle = function() {}; 
</script> 

現在你可以添加爲酥料餅的瀏覽器標題和標題鼠標懸停:

<i data-placement="bottom" data-trigger="click" 
    bs-popover="'views/partials/notifications.html'" data-html="true" 
    data-unique="1" 
    data-original-title="This title will be used by the popover" 
    title="This title will be used by a browser for a mouseover" 
/>