Как заменить атрибут href кнопки, подобной Facebook, ссылкой на объект json - PullRequest
0 голосов
/ 20 февраля 2011

На моей странице есть основной div, который генерируется плагином по ссылке.Я получаю эту ссылку с помощью ajax-вызова простого объекта json.Мне нужно подставить эту ссылку в атрибут href моей кнопки XFBML FB Like.

Вот что я пробовал:

//application.js
 $.getJSON('/full/path/show.json?' function(data) {
                $('#maindiv').somePlugin(data.data_link);
               //some actions
    $('#facebook').attr('href', data.data_link);
            });

//index.html
<div id ='facebook'>
<fb:like href="" layout="button_count" show_faces="false" width="450" colorscheme="dark"></fb:like>
            </div>

Но это не обновляет атрибут href ипросто оставляет ссылку моей страницы по умолчанию.Что я делаю неправильно?

Ответы [ 3 ]

3 голосов
/ 20 февраля 2011

Я не знаю, правильно ли я понял, но почему тег в div 'fb: like'?Разве это не ссылка (тег)?

В любом случае, просто установите href для fb: like или a и НЕ для Div.Divs обычно не имеют атрибута href.: D

Должно выглядеть примерно так:

$('#facebook fb:like').attr('href', data.data_link);

Как сказал Шон Харе: вы должны сбежать из толстой кишки.Только что проверил.Работает.Выглядит так:

$('#facebook fb\\:like').attr('href', data.data_link);

Если ссылка на данные является правильным объектом JSON, она должна работать следующим образом.Чтобы обновить ссылку, код выглядит следующим образом:

data = {data_link: 'http://example.com'};
$('#facebook fb\\:like').attr('href', data.data_link);

Конечно, вы можете получить JSON через AJAX.Если это не помогает, пожалуйста, опишите проблему точно.

(PS: не используйте комментарии, чтобы задавать новые вопросы.)

2 голосов
/ 20 февраля 2011

это потому, что вы пытаетесь получить href от div, у которого его нет.Вы пытались присвоить элементу fb:link значение id и нацелиться на него?

Обновление: очевидно, вам необходимо выйти из пространства имен - это работает

alert($('#facebook fb\\\\:like').attr('href'));
0 голосов
/ 20 февраля 2011
//application.js
 $.getJSON('/full/path/show.json?' function(data) {
                $('#maindiv').somePlugin(data.data_link);
               //some actions
    $('#facebook').attr('href', data.data_link);
            });

//index.html
<div id ='facebook'>
<fb:like href="" layout="button_count" show_faces="false" width="450" colorscheme="dark"></fb:like>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...