我正在尝试发送我从执行getJSON命令的函数发出的文本,我创建的推文按钮打开twitter但没有文本,我希望它自动"粘贴"网页当前显示的引用。我的基本HTML代码如下:
<button id="quoteClick" type="button" class="btn btn-success btn-lg quoteButton text-center btn-block">Get Quote</button>
<div class="col-md-8 show boxed text-center"> Text </div>
<div class="col-md-5 text-center author"> auth
</div>
<a class="tw-button" href="https://twitter.com/intent/tweet/?text=" data-size="large" target="_blank">
<button type="twbutton" class="btn btn-primary">Tweet quote</button>
</a>
我的JS:
$(document).ready(function() {
gQuote();
function gQuote() {
$.getJSON("https://crossorigin.me/http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en",
function(data) {
var Quote = data.quoteText;
var Author = data.quoteAuthor;
var quoteShow = ""
var quoteAuthor = ""
quoteShow += "<h3 class='text-center'>" + Quote + "</h3>"
quoteAuthor += "<h4 class='text-center'>" + Author + "</h4>"
$(".show").html(quoteShow);
$(".author").html(quoteAuthor);
});
};
$("#quoteClick").on("click",function() {
gQuote();
});
$(".tw-button").click(function(){
$(this).attr("href",'https://twitter.com/intent/tweet/?text='+ Quote);
});
});
我知道Quote
变量是在上一个函数中创建的,我不知道我怎么能&#34;携带&#34;它朝着twitter按钮。
我使用的是codepen,因此"target:_blank"
是必须的。
答案 0 :(得分:0)
如果我没有弄错,您只需在Quote
函数外声明变量Author
和gQuote()
即可。在gQuote()
内,您可以根据需要分配它们,并将其最新值传递给$(".tw-button").click()
事件。 制作确保您拥有JSON对象并正确解析数据。
我做了类似freecodecamp项目的东西。如果遇到困难,请查看here。
答案 1 :(得分:0)
Quote变量是$ .getJSON中回调的本地变量。 一个(也是最简单的)解决方案是将'var Qoute'声明转换为$(document).ready回调的回调,以便'$(“。tw-button”)可以访问它。点击'在右手搜索期间通过范围链回调。但是,这对于更大规模的代码来说并不是很好。
$(document).ready(function() {
gQuote();
var Quote; //Declare variable here
function gQuote() {
$.getJSON("https://crossorigin.me/http://api.forismatic.com/api/1.0/?method=getQuote&format=json&lang=en", function(data) {
Quote = data.quoteText; //Set it here
var Author = data.quoteAuthor;
var quoteShow = ""
var quoteAuthor = ""
quoteShow += "<h3 class='text-center'>" + Quote + "</h3>"
quoteAuthor += "<h4 class='text-center'>" + Author + "</h4>"
$(".show").html(quoteShow);
$(".author").html(quoteAuthor);
});
};
$("#quoteClick").on("click",function() {
gQuote();
});
$(".tw-button").click(function(){
$(this).attr("href",'https://twitter.com/intent/tweet/?text='+ Quote);
});
});