2010-06-03 100 views
0

我在包含許多記錄(訂單)的視圖中使用Unobtrusive Toggling。我已經在單個div上工作了,但現在我希望它能夠工作,因此每個Order都可以在循環中使用自己的切換鏈接進行擴展/收縮(鏈接也是循環的)。Unobtrusive在循環中切換

當我的可擴展div被稱爲x時,問題是切換按鈕的每個循環只是在其自己的迭代中切換第一個div而不是div - 我想最好的方法是使用order_id作爲每個標識符可展開的部分?

更有經驗的觀衆可能會笑這個:)但我試着用代碼玩弄如:

<% for order in @orders do %> 

# toggle 
<a class="toggle" href="#<%= order.id %>" rel="toggle[<%= order.id %>]">Toggle</a> 

# expandable div with its own nested toggle 
<div id="<%= order.id %>" class="expand_me"> 
    # nested toggle inside the looping expandable div 
    <a class="toggle" href="?" rel="toggle[?]">Toggle</a> 
    <div id="?" class="expand_me"> 
    ... 
    </div> 
</div> 

<% end %> 

正如你所看到的,在每個這些循環也有一些小節,我想以便能夠切換。如果我必須能夠在可擴展的循環div內切換多個div,解決方案將如何改變?這是因爲如果我將主切換div指向order.id,那麼我不知道如何引用多個內部div,這顯然是依據主要問題。

+1

爲什麼不使用js來替換某些div?似乎你的方法是一段噩夢般的html代碼,記得大部分的邏輯應該在你的控制器中。這將與ajax imo更清潔。 – mpd 2010-06-03 21:45:51

回答

1

你是否已經調查過像JavaScript這樣的JavaScript庫?您應該可以在不需要添加任何特殊類或ID的情況下執行此操作。如果<a>鏈接只是切換處理<div>,那麼您可以讓JavaScript移動到DOM中的下一個元素。