Социальные кнопки Facebook не работают в jquery / rails - PullRequest
1 голос
/ 22 февраля 2012

Я вырывал свои волосы, пытаясь решить эту проблему.

если я пойду на: https://rbzexercise.herokuapp.com/workouts/4

Появляется кнопка «Мне нравится» на Facebook, но если я нажимаю на другую тренировку (я использую ajax для перехода на другую тренировку), кнопка «Мне нравится» исчезает. Когда я обновляю, кнопка «Мне нравится» возвращается. Я знаю, что это как-то связано с моим использованием jquery, но я не знаю, как это исправить.

Я использую рельсы 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)) %>");

1 Ответ

3 голосов
/ 22 февраля 2012

Вы не вызываете FB.XFBML.parse для объекта HTMLElement, который содержит кнопку FB Like. Когда вы переключаете тренировки, в вашем обработчике событий используйте следующее в конце функции:

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

Это означает: возьмите контейнер .dright и попросите FB JS SDK проанализировать его содержимое для любых кнопок «Нравится» (и любых других социальных плагинов FB на основе разметки).

NB. Вы не можете использовать это на самом элементе, но на содержащем его элементе: отсюда мой захват вашего .dright контейнера, а не каждого .fb-like элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...