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

动态更改twitter按钮中的文本(rails+;jquery),jquery,ruby-on-rails,ajax,twitter,Jquery,Ruby On Rails,Ajax,Twitter,好的,我有index.html.erb。在它里面有menu,我从\u menu.html.erb渲染,还有div,我在控制器中使用show action从show.html.erb渲染链接。链接由显示(代码来自show.html.erb) 呈现链接的Div通常由$(“#Div_with_link”)刷新,所以@link变化很大 问题是,我不知道,我应该在我的twitter按钮文本区域中放置什么。我希望人们能够共享当前链接。我尝试了data text=”“,但它只是在我的网页上显示链接,而不是生成

好的,我有
index.html.erb
。在它里面有menu,我从
\u menu.html.erb
渲染,还有div,我在控制器中使用show action从
show.html.erb
渲染链接。链接由
显示(代码来自show.html.erb)

呈现链接的Div通常由
$(“#Div_with_link”)刷新,所以@link变化很大

问题是,我不知道,我应该在我的twitter按钮文本区域中放置什么。我希望人们能够共享当前链接。我尝试了
data text=”“
,但它只是在我的网页上显示链接,而不是生成链接


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

好吧,如果你使用twitter的默认按钮,这将很难实现。我建议只需通过包含上述参数的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));
//不知道你的应用,我只是在这里猜测:
变量twitterParams={
网址:,
正文:
}; 
$('#tweet').attr('href',”http://twitter.com/share?“+$.param(twitterParams));

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

我很难理解您的描述。我说得对吗:你在页面上显示了一个链接。然后通过AJAX更新链接。但是twitter没有被更新,因此显示了错误的链接?twitter按钮位于与链接不同的布局中,但它们一起呈现在index.html.erb中。AJAX请求完成后,您可以使用jQuery更新twitter按钮吗?如果您可以提供按钮的HTML或在线示例,我可能可以帮助您。这是链接,但请不要害怕一些俄语和疯狂的noobie代码。@polarblau,这看起来是正确的做法。谢谢你的支持。我已经完成了您所说的一切,这就是我用ajax返回的HTML片段的样子:
twitterParams.url=“”;$tweetLink.attr('href',baseLink+“?”+$.param(twitterParams));
但它给了我
未捕获的引用错误:$tweetLink未定义
。我使用的是h()吗?这是chrome开发工具的完整错误日志:
(匿名函数)zalipay:3 jQuery.extend.GlobalValzaliPay:540 evalscript zalipay:785 jQuery.extend.eachzalipay:580 jQuery.fn.extend.DommanipPay:4314 jQuery.fn.extend.appendzalipay:4073 jQuery.fn.extend.htmlzalipay:4220 jQuery.fn.extend.load.jQuery.ajax.CompletePay:4830 CompletePay:5279jQuery.extend.ajax.onreadystatechange.xhr.onreadystatechangezalipay:5214
是的,问题可能是您定义了
$tweetLink
,无法像这样访问它。只需将
$tweetLink
替换为
$(“#tweet”)
,看看会发生什么。顺便说一句:据我所知,如果您使用的是Rails 3,那么在这种情况下您根本不必再使用
h()
。您的意思是,我应该有这样的东西吗<代码>var$(“#tweet”);baseLink=$('#tweet')[0]。href
$('#tweet').attr('href',baseLink+“?”+$.param(twitterParams))因为我确实有,而且它给了我未可知的语法错误:意外的标记(在
var$('#tweet')上出错)
没有,如果我没有说清楚的话,很抱歉。我将更新上面的示例。同时确保在像
var$('#tweet');baseLink=…
->
var$('#tweet')这样的情况下不要使用分号,baseLink=
。您在一行中定义了多个变量//还有一件事:一旦设置了这个,您将遇到下一个问题(它可能找不到
baseLink
),请检查我的最新更新。