Rails haml 中大家是怎么处理这种重复代码的?

scige · 2012年10月30日 · 最后由 simlegate 回复于 2012年10月30日 · 2983 次阅读

haml 中大家是怎么处理这种重复代码的?

- @products.each do |product|
  - if product.id % 2 == 1
    .item-even
      代码片段1
  - else
    .item-odd
      代码片段2

代码片段 1 和代码片段 2 完全一样,if 判断只是想对两个部分做不同样式展示 比如奇数列和偶数列

- @products.each do |product|
  %div{ class: cycle("item-odd", "item-even") }
    代码片段

学习,正解

以此例來說,可以用 is / CSS 處理奇偶行的問題。

处理奇偶行应该这样做最好

tr:nth-child(2n+1) {
  color: #ccc;
}

tr:nth-child(2n) {
  color: #000;
}

@ywjno 我是比较喜欢你的解决方法;不过记得 IE9 之前不支持 nth-child 吧?

IE 解决方法:

<!--[if ie]>
  <script>
    $('.item:nth-child(odd)').addClass('item-odd')
    $('.item:nth-child(even)').addClass('item-even')
  </script>
<![end if]-->

#1 楼 @windless_j 这个是个好东西!

需要 登录 后方可回复, 如果你还没有账号请 注册新账号