JS没有被每个链接的数据远程接收。我正在尝试创建一个投票和未投票的按钮,就像旧的digg.com投票按钮一样。此时因为没有拿起JS,我有两个按钮,每个按钮分别用于投票和取消投票,我想将两者结合起来。我不确定为什么JS没有被接收。有什么建议?谢谢。
Micropost Controller
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 *
$("#<%=@micropost.id%>").html('<%="#{@micropost.votes_for}"%>');
$("#vote-<%=@micropost.id%>").html('<a href="/microposts/<%=@micropost.id%>/unvote" data-remote="true" class="CounterButton b2 <%=@micropost.id%>"></a>');
unvote.js
$("#<%=@micropost.id%>").html('<%="#{@micropost.votes_for}"%>');
$("#unvote-<%=@micropost.id%>").html('<a href="/microposts/<%=@micropost.id%>/vote_up" data-remote="true" class="CounterButton b2 <%=@micropost.id%>"><span class="CounterIcon <%=@micropost.id%>"></span></a>');
Micropost 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 :(得分:1)
尝试将您对javascript_include_tag
的所有来电合并为一个来电,还包括jquery_ujs
:
javascript_include_tag :jquery, :jquery_ujs, :modal, :basic_js, 'http://www.google.com/jsapi
虽然你在使用Rails 3.2,但你应该真正利用资产管道,你可以在这里阅读更多信息:
http://guides.rubyonrails.org/asset_pipeline.html
您的application.js
看起来像这样:
//= require jquery
//= require jquery_ujs
//= require_tree .
然后你会这样做:
javascript_include_tag :application
但首先尝试其他方法。