FB.ui проблемы с Feed Dialog, многие диалоговые окна открываются одновременно

Я занимаюсь разработкой приложения для Facebook на javascript, и у меня возникла проблема с использованием FB.ui, чтобы открыть диалоговое окно для публикации на стене Facebook. У меня есть этот код:

$('#share_button').click(function(){
FB.ui(
{
    method: 'feed',
    name: photo.getName(),
    link: photo.getUrlView(),
    picture: +photo.getUrl(),
    caption: photo.getCaption(),
    description: photo.getDescription()
},
function(response) {
    if (response && response.post_id) {
        alert('Post was published.');
    } else {
        alert('Post was not published.');
    }
}
)
});

значения (имя, описание, изображение, ссылка, подпись) будут обновляться с помощью js, когда я нажимаю на другую ссылку. Когда я щелкаю, чтобы поделиться контентом в первый раз, все в порядке, но когда контент меняется, и я делюсь новым контентом, Facebook показывает новое диалоговое окно, но также показывает старое... открыть все предыдущие окна.

1 ответ

Возможно, эта проблема возникает из-за того, что вы связываете обратный вызов с событием click много раз...

Когда вы нажимаете на другую ссылку, чтобы обновить содержимое диалога Facebook, вы связываете click событие, чтобы показать диалог, если вы связываете click Событие снова, есть два обратных вызова, связанные с click события вашей кнопки "Поделиться", то отображаются два диалоговых окна, потому что для события, по которому щелкнули, вызываются два обратных вызова.

Чтобы решить эту проблему, необходимо очистить обратные вызовы, связанные с click событие перед привязкой нового обратного вызова, поэтому ваш код должен выглядеть так:

$('#share_button').unbind("click");
$('#share_button').click(function(){
    ...
});

Надеюсь, это поможет!

Другие вопросы по тегам