2011-04-28 98 views
1

表列的變化內容給定一個帶有表的簡單視圖:Rails3中:鼠標懸停

 <% entries.each do |entry| %> 
      <tr> 
       <td class="align-left"><%= entry.date.strftime("%d.%m.%Y") %></td> 
       <td class="align-right><%= my_number_to_currency entry.amount_calc %></td> 
       <td class="align-left"><%= entry.description %></td> 
       <td class="align-left"><%= entry.tag %></td> 
      </tr> 
     <% end %> 

我想改變第二列的內容(每個條目),以my_number_to_currency在運行時entry.amount上鼠標懸停並在鼠標再次離開時變回原始值。另外,我想添加另一種樣式,可以是class =「over」,也可以直接設置元素的顏色。

我很感謝任何指針如何在Rails3中實現最佳效果(以及如何在只需要一個視圖的情況下放置代碼的位置)。

(備註:my_number_to_currency是一個簡單的輔助,只是覺得正常number_to_currency和我加入了jQuery的標籤,因爲我已經使用這個自動完成,因此它可如果有幫助的解決方案)

UPDATE

我試過的application.js成功如下:

$(document).ready(function() { 
    $(".joint").hover(
     function() { $(this).children(".full").show(); $(this).children(".half").hide(); }, 
     function() { $(this).children(".half").show(); $(this).children(".full").hide(); } 
    ); 
}); 

回答

1

這可能不是正是你要找的,但都被我處在你的位置......

我會爲<td>提供默認值和鼠標懸停值,並使用jQuery hide()和show()來隱藏和顯示值。這樣,無論用戶是否啓用了javascript(即漸進式增強),信息都可用。這也減少了不斷移動鼠標所需的服務器調用次數。

一定要配合另一個事件(而不是隻是鼠標懸停)的效果,因爲平板電腦,iPad,iPhone和其他設備不具備懸停功能。

這聽起來像你想要的一切(可能應該)純粹用jQuery/JavaScript來完成。如果你是jQuery的新手,他們的documentation岩石。