我有一個網上商店的應用程序,在側欄中的購物車中,在軌道上。我只是成功添加了一些AJAX,只要用戶點擊「將項目添加到購物車」,就可以重新加載購物車列。我現在試圖使購物車中的新項目突出顯示(如黃色淡入淡出效果)。爲什麼添加jquery動畫方法會打破頁面上的所有AJAX?
當我嘗試這樣做時,它不僅不起作用,而且還破壞了我成功更新自動購物車中的物品數量。該商品仍然會添加到購物車中,但您必須刷新才能看到它。我已經隔離了破壞它的代碼行,但我不知道問題出在哪裏。我想我已經安裝了所有適當的寶石。我環顧四周,一直在研究這個問題,試圖在現在安裝適當的寶石,等等。我想我有他們,但是我的代碼存在一個問題,我看不到。我真的不知道JavaScript或jQuery,我主要是Ruby和Java人。
在Gemfile中:
gem 'jquery-rails'
gem 'jquery-ui-rails'
在line_items_controller(這是在車中的每個行項目),
def create
@cart = current_cart
product = Product.find(params[:product_id])
@line_item = @cart.add_product(product.id)
@line_item.product = product
respond_to do |format|
if @line_item.save
format.html { redirect_to store_url}
format.js
format.json { render json: @line_item,
status: :created, location: @line_item }
else
在部分該柱,html.erb文件:
<% if line_item == @current_item %>
<tr id="current_item">
<% else %>
<tr>
<% end %>
<td><%=line_item.quantity%>×</td>
<td><%= line_item.product.title%></td>
<td class="item_price"><%= number_to_currency(line_item.total_price)%></td>
</tr>
在視圖中,在create.js.erb:
$('#cart').html("<%=j render @cart %>");
$('#current_item').css({'background-color: #88ff88'}).animate({"background-color: #114411"}, 1000);
第二行$('#current_item')....是打破它的一個。第一行是自動更新購物車的工作原理,其餘所有代碼,自動更新購物車都能正常工作。當我添加第二行時,自動更新停止工作。服務器說它正在渲染局部,但它什麼都不做。
我是否正確調用jquery方法?我是否正確運行寶石?我還是使用寶石的新手。謝謝。