2012-09-01 71 views
0

我有一組導航藥片沿着左邊垂直堆疊。每次點擊一個藥丸時,我都希望div「report-html-content」加載控制器操作產生的html內容,對應於:program_reports_path(@program)Rails3 Twitter Bootstrap:異步加載的div

看起來很簡單(當然,當然)這裏的觀點:

<div class="container"> 
    <div class="row"> 
    <div class="span2"> 
     <ul class="nav nav-pills nav-stacked"> 
     <li> 
      <a href="#" data-toggle="pill">Trend lines for all questions</a> 
     </li> 
     <li> 
      <%= link_to "Summary of all questions", program_reports_path(@program), 
       :remote => true, id: "reports-navlist", data: {toggle: "tab"} %> 
     </li> 
     <li class="active"> 
      <a href="#" data-toggle="pill">Trend lines for all questions</a> 
     </li> 
     <li> 
      <a href="#" data-toggle="pill">Details on all questions</a> 
     </li> 
     </ul> 
    </div> 
    <div class="span10" id="report-html-content"> 
    </div> 
    </div> 
</div> 

這裏的控制器動作:

​​

它幾乎工作。除了要求nav-pill集合執行遠程操作:出於某種原因,對其他URL執行操作後,導致選項卡的激活和停用不再有效。

我有兩個問題:

1)你能看到我的錯誤?

2)通過Rails 3和Twitter Bootstrap實現這一點的最佳實踐方式是什麼,並指出我確實希望點擊標籤的內容能夠通過ajax獲取,因爲這些報表可能代價高昂。

謝謝!這樣

回答

1

覆蓋顯示事件:

<div class="container"> 
    <div class="row"> 
    <div class="span2"> 
     <ul id="tabs" class="nav nav-pills nav-stacked"> 
     <li> 
      <a href="#" data-toggle="pill">Trend lines for all questions</a> 
     </li> 
     <li> 
      <a href="#" data-toggle="pill" id="reports-navlist">Summary of all questions</a> 
     </li> 
     <li class="active"> 
      <a href="#" data-toggle="pill">Trend lines for all questions</a> 
     </li> 
     <li> 
      <a href="#" data-toggle="pill">Details on all questions</a> 
     </li> 
     </ul> 
    </div> 
    <div class="span10" id="report-html-content"> 
    </div> 
    </div> 
</div> 

<script> 
    $(function() { 
    $('#tabs').bind('show', function(e) { 
     if ($(e.target).attr('id') == 'reports-navlist') 
     $.ajax({ 
      url: '<%= program_reports_path(@program) -%>', 
      data: { toggle: "tab" } 
     }) 
    }); 
    }); 
</script> 

您可以在http://twitter.github.com/bootstrap/javascript.html#tabs

+0

閱讀更多關於標籤的事件似乎更接近,但將在什麼地方走位放那的$就結果到DIV #報告HTML的內容? – pitosalas

+0

明白了:$ .ajax({url:'<%= program_reports_path(@program) - %>', data:{toggle:「tab」}, success:function(html){ $(「div #report-html-content「)。html(html); } }) – pitosalas