首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >点击“复制”文本后的jQuery延迟

点击“复制”文本后的jQuery延迟
EN

Stack Overflow用户
提问于 2013-06-28 20:48:59
回答 1查看 181关注 0票数 1

我有一个页面,用户点击一个按钮(“生成”),使用从json文件中拉出的文本动态生成一个随机短语。该短语被放在一个div (#generated)中,替换以前在那里(在单击按钮之前)的内容。生成短语工作得很完美。我现在想要添加的是一种方法,用户可以单击推文按钮来分享该短语。

下面是tweet按钮代码:

代码语言:javascript
复制
<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>

在标题中加上以下内容:

代码语言:javascript
复制
<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的内容发布的推文。这就是我的问题:

首先,如果尝试这样做:

代码语言:javascript
复制
$(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内容:

代码语言:javascript
复制
$("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。当然,这是行不通的。

理想情况下,每次单击"generate“按钮时,data-text都会更新。似乎有一种方法可以完成这个(https://dev.twitter.com/discussions/890)部分,但现在我只是担心上面概述的第一部分。

希望这能让sense...any知道如何真正做到这一点?感谢这位新秀的支持。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-28 21:09:53

我把它做成了“再生”推文按钮:

http://jsfiddle.net/mattydsw/xAq5t/

代码语言:javascript
复制
$("#generate").click(function () {
    $("#tweet_button").empty();
    $("#tweet_button").append('<a href="http://twitter.com/share" class="twitter-share-button" data-text="' + $('#generated').text() + '" data-count="none">Tweet</a>');
    twttr.widgets.load();
});

当然,您应该对其进行调整,因为您使用ajax函数来更改"#generated“的文本

编辑

也许是这样的

代码语言:javascript
复制
$("#generate").click(function () {
    $('#generated').load('data.txt', function () {
        $("#tweet_button").empty();
        $("#tweet_button").append('<a href="http://twitter.com/share" class="twitter-share-button" data-text="' + $('#generated').text() + '" data-count="none">Tweet</a>');
        twttr.widgets.load();
    });
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17365100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档