我目前正试图根据单选按钮选择在用户视图中呈现不同的图像。如果我对选择进行硬编码,我可以操纵图像,但我找不到如何将用户的选择从 JQuery 传递到 Rails。
首先,我对单选按钮的看法是这样的:
<!-- VIEW CODE -->
<% [ 'credit_32.png', 'credit_64.png' ].each do |image| %>
<%= radio_button_tag 'image', image, @image == image, :class => 'image' %><%= image_tag(image)%>
<% end %>
然后我有一个 div,我正在尝试使用基于选择的图像更新,我的函数要更改,在一个 javascript 文件中我在点击事件上监听这个:
// Javascript Asset File
$(function() {
$("input.image").live("click", function() {
$image = ($(this).val());
$.getScript( this.href );
});
});
这会将用户的选择设置为 $image 变量,并调用 index.js.erb 代码,该代码随后将重新渲染部分。
// Index.js.erb for responding to
$("div#button").html("<%= escape_javascript(render(@button)) %>");
我遇到的问题是如何让我以前的变量到我的部分?
<!-- Partial Code -->
<% if @button_image = $image %>
<%= link_to image_tag(@button_image), button_path(button, :only_path => false), :target => '_blank' %>
<% else %>
<%= link_to image_tag('credit_32.png'), button_path(button, :only_path => false), :target => '_blank' %>
<% end %>
如果我可以将此 @button_image 实例变量设置为我的 JQuery $image 对象,我会很好,但我不知道这是否可能?我可以将 JQuery 对象保存到会话中并在这里使用它吗?谢谢