0

当用户单击按钮时,我使用以下 JQuery 脚本更新特定元素:

$(function(){
 $("#item_<%= @detail.itemID %>").addClass('selected').html("<%= escape_javascript(render 'pages/item', :item => @detail.item, :@order => @detail.order) %>");
)};

这是我认为的相关元素:

<tr class = "item_row">
<% items.each do |item| %>
<td class = "item_data <%= item_select(item)%>", id = "item_<%= item.itemID %>" >
    <%= render 'pages/item', :item => item %>
</td>
<% end %>

我正在使用 Rails 和 JQuery。该脚本可以使用 Chrome 正确更新,但使用 Firefox 会引发以下错误(我使用 Firebug 进行了调试):

Error: Syntax error, unrecognized expression: #item_<%= @detail.itemID %>

我使用这个 rails 代码是因为我只想更新与用户单击的内容相关的特定项目。显然,我需要调整我的 JQuery,以便 Firefox 可以正确处理我的代码的 rails 元素,但是任何人都可以指出我正确的方向吗?

4

1 回答 1

0

我假设该 javascript 代码位于资产文件中。您可以这样做,但如果您通过在文件名中添加 .erb 将文件设置为使用 erb。但是在您的情况下,您想要评估一个使用实例变量的 ruby​​ 表达式,这只能在您有权访问该变量时完成。如果您在视图中移动该 javascript 函数,您应该能够运行它而不会出现任何错误。

于 2013-02-04T03:51:21.970 回答