2010-05-09 41 views
2

我希望表格中的替代行被遮蔽。什么是最好的方式来做到这一点,JavaScript,铁轨?编码替代阴影行?

今天,我做了一个简单<%NUM%2%>,但是这是这样一个共同的操作,我认为应该有做

+2

为什么更智能?我认为它没有比这更聪明或更紧凑,它是语言不可知的和常识等等 - 如果它没有被破坏,不会修复!模数足够花哨。 – LukeN 2010-05-09 23:32:42

+1

使用JavaScript做到这一点只会增加用户的页面加载时间。在所有浏览器完全支持CSS3之前,在服务器上做这件事是最好的选择。 – epascarello 2010-05-09 23:43:08

+4

如果您愿意放弃IE浏览器支持,请检查CSS3的'n-child'选择器。 – Anurag 2010-05-09 23:45:15

回答

6

如果你愿意在服务器端做,它的方式是让你使用“循环”方法,这将处理模数2的东西,但也将处理命名空间,如果你需要做嵌套交替阴影。

http://api.rubyonrails.org/classes/ActionView/Helpers/TextHelper.html#M001753 

例如

<%= cycle("even", "odd", :name => "row_class") -%> 

名字只是用于避免碰撞,如果你有2个周期的同时回事,它是可选的。

+1

+1:如果OP不想使用模数,那么使用他的平台规定的方法是要走的路数 – RedFilter 2010-05-10 00:00:37

+0

谢谢! <%= cycle(“even”,“odd”,:name =>“row_class”) - %> 为什么“ - ”在 - %>结尾? – 2010-05-10 03:35:50

+0

追踪 - %>只是告诉ERB在关闭%>标记后删除任何空格。如果你只是写出一个类名,通常是没有必要的。我只是把它写出来的习惯。 – Michael 2010-05-10 05:59:00

2

你可以做到这一点很容易使用jQuery一个更聪明的方式,如果这是一个选项。链接到头部的jQuery库,理想情况下为该表提供一个id或class,以便可以识别它,并创建一半行将获得的类。然后,把它放在你的javascript中:

jQuery(document).ready(function() { 
jQuery('#table tr:even').addClass('stripes'); //could also be tr:odd 
}); 

就是这样,真的。如果你不希望创建一个单独的类,你可以随时添加在飞行的风格:

jQuery(document).ready(function() { 
jQuery('#table tr:even').css({'backgroundColor: blue', 'font: red'}); 
}); 
+0

我可能会错过一些东西,但是如何确定哪些行应该具有tr:even属性? – Casey 2010-05-09 23:57:20

+0

选择器正在做什么只是选择偶数行(0,2,4等),以便您不需要。如果您愿意,可以将其设置为奇数。所以每一行都会有你的'条纹'类附加/接受样式声明。 – user97410 2010-05-10 00:03:18

+0

谢谢!这很好。 – Casey 2010-05-10 00:22:02

2

这实际上是内置于导轨 - 检查助手的ActionView的“循环”的方法。