2009-07-01 265 views
0

我正在使用Ruby on Rails,並有一張表,我試圖排序。 tablesorter jquery插件,它正確地加載在我的文件中。我有jquery在它前面打電話。我有這個代碼在我的JavaScript。在軌道上的紅寶石Jquery Tablesorter

$(document).ready(function(){ 
    $("#myTable").tablesorter({widgets: ['zebra']}); 
    $("#business").tablesorter({sortList: [[0,0], [1,0]]}); 
}); 

我有2個表格。我有我的表是靜態的,只是爲了看代碼是否正常工作(和它)。我可以通過點擊任何標題進行排序。

<table id="myTable"> 
    <thead> 
    <tr> 
     <th>Last Name</th> 
     <th>First Name</th> 
     <th>Email</th> 
     <th>Due</th> 
     <th>Web Site</th> 
    </tr> 
    </thead> 
    <tbody> 
    <tr> 
     <td>Smith</td> 
     <td>John</td> 
     <td>[email protected]</td> 
     <td>$50.00</td> 
     <td>http://www.jsmith.com</td> 
    </tr> 
    <tr> 
     <td>Bach</td> 
     <td>Frank</td> 
     <td>[email protected]</td> 
     <td>$50.00</td> 
     <td>http://www.frank.com</td> 
    </tr> 
    <tr> 
     <td>Doe</td> 
     <td>Jason</td> 
     <td>[email protected]</td> 
     <td>$100.00</td> 
     <td>http://www.jdoe.com</td> 
    </tr> 
    <tr> 
     <td>Conway</td> 
     <td>Tim</td> 
     <td>[email protected]</td> 
     <td>$50.00</td> 
     <td>http://www.timconway.com</td> 
    </tr> 
    </tbody> 
</table> 

但我也有我的另一個表是從數據庫動態拉動。根本不起作用,當我點擊標題時什麼也不做。

<table width="650" cellpadding="6" cellspacing="0" id="business"> 
    <thead> 
    <tr> 
     <th>Business Name</th> 
     <th>Address</th> 
     <th>Category</th> 
     <th>Description</th> 
    </tr> 
    </thead> 
    <% @businesses.each do |business|if !business.approved %> 
    <tbody> 
     <tr> 
     <td><a class="Contact<%=h business.id %>" href="#"><%=h business.name %></a></td> 
     <td><%=h business.address %></td> 
     <td><%=h business.business_category.name %></td> 
     <td><%=h business.description %></td> 
     </tr> 
    </tbody> 
    <% end %> 
</table> 

任何幫助將是偉大的。

+1

你有沒有解決這個問題? – Dsel 2013-08-15 22:08:47

+0

請回到什麼工作。 – DDDD 2013-09-24 23:21:01

回答

0

我假設你正在做一個ajax調用來請求帶有業務id的動態表?如果是這樣,你需要在表被添加到dom時調用tablesorter方法,通常在.ajax的成功方法中。如果你可以證明你是如何請求插入業務表的,我可以爲你提供幫助。

0

不確定在問題表的輸出中重複的TBODY標記是否會令tablesorter混淆。

1

問題是您的TBODY標籤正在爲每行輸出,這是不正確的語法。每桌只能有一個TBODY。您的代碼應該是這樣的:

<tbody> 
    <% @businesses.each do |business|if !business.approved %> 
    <tr> 
     ... 
    </tr> 
    <% end %> 
</tbody> 

編輯(2015年5月13日):

更好的語法將查詢相關的結果,而不是所有結果的數據庫,然後執行條件爲原本說明。

<tbody> 
    <% @businesses.where(approved: false).each do |business| %> 
    <tr> 
     ... 
    </tr> 
    <% end %> 
</tbody> 

最佳的做法是範圍在模型中的查詢:

範圍:not_approved, - > {其中(已批准:假)}

和在控制器執行查詢:

@businesses = Business.not_approved 

,然後在視圖中,就列舉結果:

<% @businesses.each do |business| %> 
0

這也解決了我使用django的問題。移動標籤內的{%endfor%}解決了問題