我有一个页面,用户点击一个按钮(“生成”)动态生成随机短语使用从json文件拉的文本。该短语放置在一个div(#generated)中,替换之前存在的内容(单击按钮之前)。生成这个短语完美无缺。我现在要添加的内容是用户点击推文按钮分享该短语的一种方式。jQuery延迟点击后“复制”文本
这里的鸣叫按钮代码:
<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());
});
});
那当然,从“这是我们要动态地改变”什么是在div“生成”以前data-text
变化按钮被按下(即文档准备好时有什么),这不是我想要的。所以,我想我可以利用这个代码,并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内容更改),然后用div的新内容更新data-text
。当然,这是行不通的。
理想情况下,每次单击“生成”按钮时都会更新data-text
。似乎可能有办法做到这一点(https://dev.twitter.com/discussions/890)的一部分,但现在我只是担心如上所述的第一部分。
希望这是有道理的...任何想法如何实际做到这一点?感谢这位新手的支持。
你为什么在这里使用$ .getScript?我不明白 –
事后看来,可能不需要这一行,因为我在标题中有这个完整的twitter脚本,但是你认为这是问题吗?我删除了该行,并没有产生任何影响。 – jonmrich
当然,你不应该加载脚本两次,但我不认为它是你的问题。事实上,我不太了解你的问题。您应该将您的点击处理程序包装在文档中。检查你的点击事件是否被解雇。但是,从哪里来的动态文本,以及如何? –