2016-06-25 59 views
0

我想使用Bootstrap Popover和ajax模板。接下來的腳本運行良好,...Bootstrap Popover失敗,使用ajax

$('.popover-trigger').bind('click', function(k) { 

       var e=$(this); 
title="Jeepieee" 
       $.get('/popover/'+e.data('pophtml'),function(d) { 
        e.popover({ 
          content: d, 
          container: 'body', 
          title: title, 
          html: true 
         }).popover('show'); 
       }); 
}); 

...但是,如果我第一發送AjaxCall的開酥料餅,這是對的。我再次打開酥料餅,它向我展示了我的HTML,但是從酥料餅的HTML是舊的,而不是AJAX調用..

當我用$()。酥料餅(「摧毀」),然後我有沒有點擊事件在我的按鈕,它什麼也沒有打開。

如果我有多個,會使事情變得更糟。

回答

1

通過AJAX在Bootstrap popover中加載內容是一種非常常見的模式,儘管Bootstrap不支持該模式,但通過jQuery獲得此功能非常容易。

首先,我們應該添加一個數據poload屬性到 想添加彈出的元素。該屬性的內容應該是要加載的 URL(絕對或相對):

<a href="#" title="blabla" data-poload="/test.php">blabla</a> 

而在JavaScript中,優選在(文檔)$。就緒();

$('*[data-poload]').hover(function() { 
    var e=$(this); 
    e.off('hover'); 
    $.get(e.data('poload'),function(d) { 
     e.popover({content: d}).popover('show'); 
    }); 
}); 

off('hover')防止超過一次加載數據越來越popover()結合 新懸停事件。如果您希望在每次懸停 事件時刷新數據,則應刪除關閉。

請參閱工作JSFiddle的例子。

+0

不!通過懸停它正在運行,但不bei點擊事件。我需要點擊事件,因爲我在彈出窗口中使用了一個窗體。 – Moo

+0

所以,只需將懸停事件更改爲點擊事件即可。請參閱演示:[JsFiddle](https://jsfiddle.net/DTcHh/22082/) –

+0

不!在選項html下設置爲true,可以有更多的作爲一個事件和$ get的同等響應,因爲不穩定不穩定。 – Moo