2012-02-22 59 views
1

我一直拉着我的头发试图解决这个问题。Facebook的社交按钮不工作在jquery/rails

如果我去:https://rbzexercise.herokuapp.com/workouts/4

像按钮Facebook的显示出来,但如果我点击其他锻炼(我使用AJAX来获取到其他锻炼)等按钮消失。当我刷新像按钮返回。我知道这与我使用jquery有关,但我不知道如何解决它。

我使用rails 3.2.1,ruby 1.9.2。我希望有足够的信息,如果不让我知道。

感谢您的帮助!

更新: Facebook的代码是在脚本中的部分

 <script> 
    $(document).ready(function() { 
    $("div.dright").append('<div class="fb-like" data-href="<%= likepage_workout_url(workout) %>" data-send="true" data-width="450" data-show-faces="true"></div>') 
    }); 
    </script> 

它能够通过我的show.js.erb文件运行:

 $("div.descbar").html("<%= escape_javascript(render('workouts/title', :workout => @workout)) %>"); 
+0

请给我们一些代码。 – 2012-02-22 03:06:08

+0

你是如何初始化Facebook的按钮?您在ajax调用加载内容后是否重新初始化它? – 2012-02-22 03:08:50

+0

你如何重新初始化? – 2012-02-22 03:36:58

回答

3

你不是叫FB.XFBML。解析包含FB Like按钮的HTMLElement对象。当您切换锻炼,在事件处理程序,使用下面的函数的末尾:

FB.XFBML.parse($(".dright")[0]); 

这意味着:抢.dright容器,并有FB JS SDK解析其内容对任何类似按钮(和任何其他基于标记的FB社交插件)。

注意:你不能在元素本身上使用它,但是包含元素:因此我抓住你的.dright容器,而不是每个.fb-like元素。

+1

顺便说一句,如果你想在你编码之前看到这个,打开你的页面和你的JS控制台。改变锻炼,然后将上面的代码放到控制台中,并看到FB Like Button出现。 (这就是我对此的测试。) – 2012-02-22 04:06:40

+0

工程就像一个魅力!谢谢! – 2012-02-22 04:11:17

+0

没问题。 (回答信用会很好。):) – 2012-02-22 04:18:22