我如何获得Twitter/Facebook/Google+;通过ajax加载页面后显示的按钮?

我如何获得Twitter/Facebook/Google+;通过ajax加载页面后显示的按钮?,ajax,ruby-on-rails-3,twitter,facebook-like,google-plus,Ajax,Ruby On Rails 3,Twitter,Facebook Like,Google Plus,我有一个rails 3.1应用程序,允许用户通过Twitter、Google+和Facebook(HTML5版本的like按钮)共享项目。我在项目的显示页面上工作得很好(即-只显示一个项目),但在通过Ajax将项目加载到列表中的容器页面上出现问题。我想在容器中的每个项目旁边都有单独的共享按钮 第一次加载页面时,共享按钮会在每个项目旁边显示良好。只有当我通过ajax重新加载容器时,我的问题才会出现。Twitter、Google+和Facebook按钮不会显示。我是这样设置的: applicatio

我有一个rails 3.1应用程序,允许用户通过Twitter、Google+和Facebook(HTML5版本的like按钮)共享项目。我在项目的显示页面上工作得很好(即-只显示一个项目),但在通过Ajax将项目加载到列表中的容器页面上出现问题。我想在容器中的每个项目旁边都有单独的共享按钮

第一次加载页面时,共享按钮会在每个项目旁边显示良好。只有当我通过ajax重新加载容器时,我的问题才会出现。Twitter、Google+和Facebook按钮不会显示。我是这样设置的:

application.html.haml

-# This is right before the body tag closes
= render 'site/share_js'
-# other code here that displays the item...
= render :partial => 'site/share_buttons', :locals => share_info_hash
\u share\u js.html.erb(每个提供商的代码)

但是,正如我在上面提到的,在ajax操作之后,它就不能正常工作了:

my_ajax\u action.js.erb(通过控制器中的format.js调用)

$(“#项容器”).html(“我的#项”,:集合=>@item#u列表%>”;

所有项目都正确显示在容器中,但共享按钮不显示。我猜问题在于特定于提供者的javascript需要在执行ajax操作后运行。在刷新html后,我尝试将提供程序javascript放入my_ajax_action.js.erb文件中,但这似乎不起作用。有没有人对我如何让它工作有什么想法?非常感谢您的帮助

尝试渲染的按钮使用搜索和替换技术。当发生onload时,当页面上已经存在成为按钮的元素时,这项操作无需任何特殊干预

但是,在您的例子中,成为按钮的元素是在执行替换脚本之后插入的。由于顺序与脚本预期的不同,因此在将新按钮添加到页面后,您需要自己触发渲染

以下是一些文档链接,解释了如何为每项服务执行此操作:

谷歌+1按钮

类似Facebook的按钮

推特按钮:我在文档中找不到这个按钮,但根据一些论坛活动,这看起来像是您要查找的代码:

twttr.widgets.load(); twttr.widgets.load(); (见此处相关论坛帖子:)

-# other code here that displays the item...
= render :partial => 'site/share_buttons', :locals => share_info_hash
$("#item-container").html("<%= escape_javascript(render :partial => "my_item", :collection => @item_list)%>");
twttr.widgets.load();