Ajax正在分层引导按钮

时间:2013-01-17 01:23:50

标签: css ruby-on-rails ajax twitter-bootstrap

我使用ajax切换"喜欢"没有页面刷新的按钮。出于某种原因,当我点击按钮时,在按钮的背景中似乎有更大的按钮层。我不知道为什么他们会分层或为什么他们会更大。

问题在于我正在使用的引导类。它导致它通过btn调用btn。当我删除该类时,链接正确地重新呈现。因此,我试图重新设计CSS中的link_to,使其看起来像一个btn但是出现了同样的问题。

按钮的正常外观如下:

enter image description here

点击后:

enter image description here

enter image description here

微柱/助手:

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

1 个答案:

答案 0 :(得分:1)

html(htmlString)设置所选元素的内容。您选择的元素是按钮。请改用replaceWith(newContent)