2011-02-17 37 views
0

好的,所以我有index.html.erb。其中我有菜單,我從_menu.html.erb和div渲染,其中我通過在控制器中使用show動作呈現鏈接show.html.erb。鏈接顯示爲<%=link_to h(@link), h(@link) %>(來自show.html.erb的代碼)。動態更改twitter按鈕(rails + jquery)中的文本

在其中呈現鏈接的Div通常會被$('#div_with_link').load('controller/show');刷新,因此@link會有很大變化。

問題是,我不知道,我應該在我的twitter按鈕文本區域放什麼。我希望人們能夠分享當前鏈接。我試過data-text="<%[email protected] %>",但它只是顯示我的網頁上的鏈接,沒有生成一個。

我應該怎麼做才能將生成的鏈接放到我的twitter按鈕中?任何建議都會有所幫助,請提前謝謝。

+1

我很難跟隨你的描述。我是否明白這一點:您在頁面上顯示鏈接。然後你通過AJAX更新鏈接。但是Twitter並未更新,因此顯示錯誤的鏈接? – polarblau 2011-02-17 20:50:13

+0

@polarblau完全正確! – Maay 2011-02-17 21:13:20

回答

2

好的,如果你使用twitter的默認按鈕,這將是很難實現的。我建議只需構建your own button並通過包括上述參數在內的Javascript更新此鏈接的href屬性。下面是一些代碼,讓你開始:

使用此,而不是你的Twitter按鈕和風格也相應:

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

每次加載新的東西進入格,設置新的URL(和其他PARAMS如果你想)例如像這樣:

// 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片段。