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 のコードを使用します。明らかに、Firefox がコードの rails 要素を適切に処理できるように JQuery を適応させる必要がありますが、誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

0

そのJavaScriptコードはアセットファイル内にあると想定しています。これを行うことができますが、ファイル名に .erb を追加して erb を使用するようにファイルを設定した場合。しかし、あなたの場合、変数にアクセスできる場合にのみ実行できるインスタンス変数を使用するルビ式を評価したいと考えています。その JavaScript 関数をビュー内に移動すると、エラーなしで実行できるはずです。

于 2013-02-04T03:51:21.970 に答える