2013-07-03 77 views
0

我有一個網上商店的應用程序,在側欄中的購物車中,在軌道上。我只是成功添加了一些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%>&times;</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方法?我是否正確運行寶石?我還是使用寶石的新手。謝謝。

回答

0

原來是破壞代碼的語法錯誤。我仍然沒有黃色淡入淡出效果,但我的其他代碼現在正在工作。

在create.js.erb,我有:

$('#current_item').css({'background-color: #88ff88'}).animate({"background-color: #114411"}, 1000); 

時,我應該有

$('#current_item').css({'background-color': '#88ff88'}).animate({"background-color:" "#114411"}, 1000); 

我沒有得到我的引號的權利。我有'background-color: #88ff88'當我應該有兩套,一個圍繞背景顏色和一個圍繞顏色本身。

我沒有寶石的工作,如果有人有答案,我很樂意聽到他們,但至少我解決了爲什麼代碼打破。

0

裏面下載rails32/depot_m /應用/視圖/ line_items/_line_item.html.erb

確保你對你的報價是雙不是單一的。

如果是亮點不起作用。

0

這很晚了,但我只是經歷了完全相同的事情。我發現你的回覆非常有幫助,所以我讓你知道我認爲是錯誤的。

在你的line_item_controller上,你寫了「format.js」,但是沒有傳入任何變量。但是在html.erb文件中,如果line_item == @current_item%>

因爲沒有傳入任何變量,您在@current_item中永遠不會獲取任何內容,所以您在執行<%。所以你的if語句總是失敗,html.erb將始終保持格式而不是

我希望你已經知道了這一點!

相關問題