2011-04-28 106 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岩石。