开发者

How to substitute facebook like button's href attribute with a link from json object

开发者 https://www.devze.com 2023-02-12 08:19 出处:网络
On my page I have main div, which is generated by a plugin from a link. I\'m getting this link by ajax call to simple json object. I need to substitute this link into the 开发者_运维百科href attribute

On my page I have main div, which is generated by a plugin from a link. I'm getting this link by ajax call to simple json object. I need to substitute this link into the 开发者_运维百科href attribute of mine XFBML FB Like button.

Here, what I've tried:

//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>

But it doesn't upgrade the href attribute and just leaves my page's link by default. What am I doing wrong?


I dont know if I am getting it wrong but why is the tag in the div 'fb:like'? Shouldnt it be a link (a tag)?

Anyhow just set the href for the fb:like or a and NOT for the Div. Divs ussualy have no href attribute. :D

Should look something like this:

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

As Shaun Hare said: you have to escape the colon. Just tested it. Works. Looks like this:

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

If data link is a proper JSON object it should work this way. To update your link the code looks like this:

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

Of course you can get the JSON via AJAX. If it doesnt work please describe the problem precisely.

(PS: Dont use comments to ask new questions.)


that because you are trying to get href from div which does not have one. Have you tried giving the fb:link element an id and targeting that?

Update : apparaently you need to escape namespace - this works

alert($('#facebook fb\\\\:like').attr('href'));


//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>
0

精彩评论

暂无评论...
验证码 换一张
取 消