使用Rails 3:在我的update.js.erb文件中,我发现我重复了很多东西。所以我试着把它全部变成一个帮手。但我无法让助手回馈干净的javascript。它将\"
放在任何地方而不是“
以下是我的开始:
<% if @list.show_today %>
$("#show_today_check_<%= @list.id %>").removeClass("gray").addClass("orange").attr("value","0");
<% else %>
$("#show_today_check_<%= @list.id %>").removeClass("orange").addClass("gray").attr("value","1");
<% end %>
<% if @list.show_inventory %>
$("#show_inventory_check_<%= @list.id %>").removeClass("gray").addClass("white").attr("value","0");
<% else %>
$("#show_inventory_check_<%= @list.id %>").removeClass("white").addClass("gray").attr("value","1");
<% end %>
etc.
这是我写的生成上述javascript的帮助器:
def toggelButtonState( object, name, color)
if object.send(name)
@add_col = color
@rem_col = 'gray'
@value = "0"
else
@add_col = 'gray'
@rem_col = color
@value = "1"
end
js = '$("#'
js += "#{name}_check_#{@list.id}"
js += '").removeClass("'
js += @rem_col
js += '").addClass("'
js += @add_col
js += '").attr("value","'
js += @value
js += '");'
end
我称之为:
<%= toggelButtonState( @list , 'show_today', 'orange' ) %>
以下是我在回复中得到的内容:
$(\"#show_today_check_2\").removeClass(\"orange\").addClass(\"gray\").attr(\"value\",\"1\");
现在我注意到帮助器中直接html存在类似的问题。它不会让我在尖括号中返回东西。但后来我发现了content_tag。 javascript有类似的东西吗?我怎样才能摆脱\"
?
答案 0 :(得分:2)
添加
js.html_safe
作为toggelButtonState函数的最后一行