我有一个页面,用户单击按钮(“生成”)以使用从 json 文件中提取的文本动态生成随机短语。该短语被放置在一个 div (#generated) 中,替换之前的内容(在单击按钮之前)。生成短语效果很好。我现在要添加的是用户单击推文按钮以共享该短语的一种方式。
这是推文按钮代码:
<div id="tweet_button">
<a href="http://twitter.com/share"
class="twitter-share-button"
data-text="This is what we want to change dynamically"
data-count="none">Tweet</a></div>
加上标题中的这个:
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="https://platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
这data-text
就是我希望在按下按钮后使用 div 的内容发推文的内容。这是我的问题:
首先,如果试试这个:
$(document).ready(function(){
$.getScript('http://platform.twitter.com/widgets.js');
$('a[data-text]').each(function(){
$(this).attr('data-text', $('#generated').text() );
});
});
那么当然,data-text
从“这是我们想要动态更改的内容”到按下“生成”按钮之前 div 中的内容(即文档准备好时那里的内容)的变化,这不是我想要的. 所以,我想我可以使用这段代码并data-text
更改为新生成的 div 内容:
$("generate").click(function() {
setTimeout(function(){
$.getScript('http://platform.twitter.com/widgets.js');
$('a[data-text]').each(function(){
$(this).attr('data-text', $('#generated').text() );
});
},
1000);
});
在我看来,这将等到单击“生成”按钮,延迟一秒钟(以确保 div 内容已更改),然后data-text
使用 div 的新内容更新。当然,这是行不通的。
理想情况下,data-text
每次单击“生成”按钮时都会更新。似乎有办法做到这一点(https://dev.twitter.com/discussions/890)部分,但现在我只是担心上面概述的第一部分。
希望这是有道理的......知道如何实际做到这一点吗?感谢这位完整菜鸟的支持。