在twitter按钮中动态更改文本(rails + jquery)

时间:2011-02-17 20:06:35

标签: jquery ruby-on-rails ajax twitter

好的,我有index.html.erb。在其中我有一个菜单,我从_menu.html.erb和div渲染,在其中我通过在我的控制器中使用show action从show.html.erb渲染链接。链接由<%=link_to h(@link), h(@link) %>(来自show.html.erb的代码)显示。

在其中呈现链接的Div通常会被$('#div_with_link').load('controller/show');刷新,因此@link会发生很大变化。

问题是,我不知道,我应该把什么放在我的twitter按钮文本区域。我希望人们能够分享当前的链接。我已经尝试了data-text="<%=@video %>",但是只是显示了我网页上的链接,而不是生成的链接。

我应该怎么做,将生成的链接放在我的推特按钮中?任何建议都会有所帮助,谢谢你提前。

1 个答案:

答案 0 :(得分:2)

好吧,如果你使用twitter的默认按钮,这将很难实现。我建议只需构建your own button并通过Javascript(包括上述参数)更新此链接的href属性。这里有一些代码可以帮助您入门:

使用此按钮代替您的Twitter按钮并相应地设置样式:

<a href="http://twitter.com/share" id="tweet">Tweet</a>

每次在div中加载新内容时,请设置新的URL(如果需要,还可以设置其他参数),例如像这样:

// not knowing your app, I'm just guessing here:
var twitterParams = { 
    url: <%= url_for(@video) %>, 
    text: <%= @video.title %> 
}; 
$('#tweet').attr('href', "http://twitter.com/share?" + $.param(twitterParams));

你可以这样做,例如在您通过AJAX加载新内容时返回的HTML片段。