我通过 js 有表行着色(针对行组)。
我想让它通过会话变量记住阴影。
我正在使用的 haml 部分有:
Group Shading:
%a{:href => '#', :id => 'row_colors_on'}
On
%a{:href => '#', :id => 'row_colors_off'}
Off
js 有:
$(function(){
$("a#row_colors_on").click(function(){
$(".row_color_group_1").addClass("color_group_1");
$(".row_color_group_2").addClass("color_group_2");
$(".row_color_group_3").addClass("color_group_3");
<%- session.group_shading = 'true' %>
event.preventDefault();
});
});
$(function(){
$("a#row_colors_off").click(function(){
$(".row_color_group_1").removeClass("color_group_1");
$(".row_color_group_2").removeClass("color_group_2");
$(".row_color_group_3").removeClass("color_group_3");
<%- session.group_shading = 'false' %>
});
});
主页然后使用:
- row_bg_color_group = 'row_color_group_1'
- for link in @links
- construct_hyperlink(link.url_address, link.alt_text)
- if link.group.group_name != (current_group ||= '')
- display_group = current_group = link.group.group_name
- row_bg_color_group = rotate_rows_color_group
- else
- display_group = ''
%tr{:class => "#{row_bg_color_group}"}
更改行背景颜色的代码确实可以做到这一点,但在通过会话变量刷新页面后不会记住它?
与助手:
def rotate_rows_color_group
if session[:group_shading] == 'true'
cycle('row_color_group_1', 'row_color_group_2', 'row_color_group_3')
else
'row_color_group_1'
end
end
但我总是得到“其他”条件,即session[:group_shading]
没有被设置或识别
CSS 是
.color_group_1 { background-color: #133333; }
.color_group_2 { background-color: #122222; }
.color_group_3 { background-color: #111111; }