我使用ajax切换"喜欢"没有页面刷新的按钮。出于某种原因,当我点击按钮时,在按钮的背景中似乎有更大的按钮层。我不知道为什么他们会分层或为什么他们会更大。
问题在于我正在使用的引导类。它导致它通过btn调用btn。当我删除该类时,链接正确地重新呈现。因此,我试图重新设计CSS中的link_to,使其看起来像一个btn但是出现了同样的问题。
按钮的正常外观如下:
点击后:
微柱/助手:
def toggle_like_button(micropost, user)
if user.voted_for?(micropost)
link_to "undo", like_micropost_path(micropost), :class => "btn btn-mini btn-primary", :id =>"unvote_form_#{micropost.id}", :remote => true
else
link_to "Into it!", like_micropost_path(micropost), :class => "btn btn-mini btn-primary", :id =>"vote_form_#{micropost.id}", :remote => true
end
end
微柱/ like.js.erb:
$("#vote_form_<%=@micropost.id%>").html("<%= escape_javascript(toggle_like_button(@micropost, @current_user)) %>")
$("#unvote_form_<%=@micropost.id%>").html("<%= escape_javascript(toggle_like_button(@micropost, @current_user)) %>")
Micropost Controller:
def like
@micropost = Micropost.find(params[:id])
@feed_item = Micropost.find(params[:id])
if @micropost.user_id != @current_user.id
if @current_user.voted_for?(@micropost)
@current_user.unvote_for(@micropost)
respond_to do |format|
format.html { redirect_to :back }
format.js
end
else
@current_user.vote_for(@micropost)
respond_to do |format|
format.html { redirect_to :back }
format.js
end
end
end
end
答案 0 :(得分:1)
html(htmlString)
设置所选元素的内容。您选择的元素是按钮。请改用replaceWith(newContent)
。