2012-02-24 61 views
0

JS沒有被每個鏈路的數據遠端拾取。我正在嘗試創建一個按鈕,可以進行投票和投票,就像舊的digg.com投票按鈕一樣。在這個時候,因爲JS沒有被拿起,所以我有兩個按鈕分別用於投票和unvoting,我想將兩者結合起來。我不確定爲什麼JS沒有被拾起。有什麼建議麼?謝謝。Rails:JS沒有被數據遠端拾取

控制器微柱

class MicropostsController < ApplicationController 
    def vote_up 
    @micropost = Micropost.find(params[:id]) 
    current_user.vote_exclusively_for(@micropost) 
    respond_to do |format| 
     format.html { redirect_to :back } 
     format.js 
     end 
    end 

    def unvote 
    @micropost = Micropost.find(params[:id]) 
    current_user.vote_exclusively_against(@micropost) 
    respond_to do |format| 
     format.html { redirect_to :back } 
     format.js 
     end 
    end 
end 

JS文件

* vote_up.js *

$("#<%[email protected]%>").html('<%="#{@micropost.votes_for}"%>'); 
$("#vote-<%[email protected]%>").html('<a href="/microposts/<%[email protected]%>/unvote" data-remote="true" class="CounterButton b2 <%[email protected]%>"></a>'); 

unvote.js

$("#<%[email protected]%>").html('<%="#{@micropost.votes_for}"%>'); 
$("#unvote-<%[email protected]%>").html('<a href="/microposts/<%[email protected]%>/vote_up" data-remote="true" class="CounterButton b2 <%[email protected]%>"><span class="CounterIcon <%[email protected]%>"></span></a>'); 

HTML微柱

<div class='Counter'> 
<span class='CounterNum'><span id='<%= micropost.id%>'><%=micropost.votes_for %></span></span> 
<div id='vote-<%=micropost.id %>'> 
<a href="/microposts/<%=micropost.id %>/vote_up" data-remote='true' class='CounterButton b2'> 
<span class='CounterIcon'></span> 
</a> 
</div> 
<div id='unvote-<%=micropost.id %>'> 
<a href="/microposts/<%=micropost.id %>/unvote" data-remote='true'class='CounterButton b2'> 
<span class='CounterIcon'></span> 
</a> 
</div> 
</div> 
+0

您能更具體地瞭解您所看到的錯誤嗎? – James 2012-02-24 03:12:27

+0

@James沒有出現一個特定的錯誤,它只是表明鏈接的遠程數據沒有在JS上撿起來,我很困惑爲什麼JS沒有被拾起。由於JS沒有被拾取,所以我有兩個相鄰的按鈕,而不是兩個按鈕在點擊時打開和關閉。 – Kellogs 2012-02-24 03:20:51

+0

當您點擊其中一個按鈕時日誌會顯示什麼內容? – James 2012-02-24 03:53:22

回答

1

嘗試所有呼叫相結合,javascript_include_tag成一個單一的呼叫,還包括jquery_ujs

javascript_include_tag :jquery, :jquery_ujs, :modal, :basic_js, 'http://www.google.com/jsapi

雖然因爲你是on Rails的3.2,你應該真正利用資產管道,您可以在這裏閱讀更多信息:

http://guides.rubyonrails.org/asset_pipeline.html

application.js然後會是這個樣子:

//= require jquery 
//= require jquery_ujs 
//= require_tree . 

然後您可以簡單地做:

javascript_include_tag :application

但首先嚐試其他方法。

+0

做'javascript_include_tag:application'所有js文件顯示,但事情就是爲什麼我仍然有兩個按鈕,並不意味着該js文件是在micropost文件夾中沒有被鏈接提取? – Kellogs 2012-02-24 05:17:31

+0

它取了JS NVM但HMM可你爲什麼還是有兩個按鈕,而不是一個僅僅來回切換幫助嗎? – Kellogs 2012-02-24 05:20:13

+0

獲取請求仍然在日誌中處理爲html嗎? – James 2012-02-24 05:20:49