2013-07-25 32 views
1

我遇到了Bootstrap的popover問題,它每次處理「show」時都會發出2個AJAX請求。Bootstrap工具提示和popover製作雙重請求

考慮到這一點,我正在使用AJAX來填充popover,每次有2個請求不是我的好主意。

有沒有人有任何想法敲下來1請求? 這裏是jsFiddle,它顯示與工具提示相同的問題(popover擴展)。 http://jsfiddle.net/Handyman/NBkKE/1/

HTML:

<div class="container"> 
<div class="row"> 
    <div class="span12" id="content"> 
     <div class="span6"> 
      <span class="btn btn-primary">item1</span> 
     </div> 
     <div class="span6"> 
      <span class="btn btn-primary">item2</span> 
     </div> 
     <div class="span6"> 
      <span class="btn btn-primary">item3</span> 
     </div> 
     <div class="span6"> 
      <span class="btn btn-primary">item4</span> 
     </div> 
    </div> 
</div> 
</div> 
<div id="container"></div> 

JS:

var $counter = 0; 
$('#content').tooltip({ 
html: true, 
trigger: 'hover', 
placement: 'bottom', 
container: '#container', 
title: function() 
{ 
    $.ajax({ 
     type: 'GET', 
     url: '/echo/json/', 
     data: { 
      item1data: 'some data for item 1', 
      item2data: 'some data for item 2' 
     }, 
     success: function($response) 
     { 
      console.log($response); 
     } 
    }); 

    return 'testing' + ($counter++); 
} 
}); 
+0

工具提示庫內部檢查,如果有內容,那麼它顯示的內容。這兩個調用('hasContent'和'setContent')都會調用您的'getTitle'方法。如果你設置一個斷點並檢查調用堆棧,你會看到我在說什麼。 http://jsfiddle.net/ccamarat/tz4qQ/ 使用Ajax填充工具提示看起來有點沉重;你可能會考慮以不同的方式填充它。 –

回答

0

所以,問題是,我是用標題兩個標題和內容。 Popover有一個獨立的內容方法。

因此,一旦我開始正確使用它們,我現在只有1個對服務器的請求。

新的JS:

var $counter = 0; 
$('#content').popover({ 
html: true, 
trigger: 'hover', 
placement: 'bottom', 
container: '#container', 
title: function() 
{ 
    return $(this).text(); 
}, 
content: function() 
{ 
    $.ajax({ 
     type: 'GET', 
     url: '/echo/json/', 
     data: { 
      item1data: 'some data for item 1', 
      item2data: 'some data for item 2' 
     }, 
     success: function($response) 
     { 
      console.log($response); 
     } 
    }); 

    return 'testing' + ($counter++); 
} 
});