好吧所以我想通过API(forismatic.com)得到随机引用,如果它通过tweeter.my问题有140个字母共享,因为我不确定,为什么第一个条件不起作用。
var tweetLink = "https://twitter.com/intent/tweet?text=";
var quoteUrl = "http://api.forismatic.com/api/1.0/?method=getQuote&key=867576&format=jsonp&lang=en&jsonp=?";
function getQuote() {
$.getJSON(quoteUrl, createTweet);
}
function createTweet(input) {
if (tweetText.length > 140) {
getQuote();}
var tweetText = "Quote of the day - " + input.quoteText + " Author: " + input.quoteAuthor;}
if (!input.quoteAuthor.length) {
input.quoteAuthor = "Unknown author";
else {
var tweet = tweetLink + encodeURIComponent(tweetText);
$('.quote').text(input.quoteText);
$('.author').text("Author: " + input.quoteAuthor);
$('.tweet').attr('href', tweet);
}
}
$(document).ready(function() {
getQuote();
$('.trigger').click(function() {
getQuote();
})
});
答案 0 :(得分:0)
如果我理解你的问题,你说这个条件"不起作用"?:
if (tweetText.length > 140) {
当然,您的浏览器调试控制台会告诉您这里的问题。这里tweetText
变量未定义。因为您在之后定义它,所以使用它:
if (tweetText.length > 140) {
getQuote();
}
var tweetText = "Quote of the day - " + input.quoteText + " Author: " + input.quoteAuthor;
简单地说,在拥有值之前,您无法使用值。当然,你的意思是将这两个操作放在相反的顺序中:
var tweetText = "Quote of the day - " + input.quoteText + " Author: " + input.quoteAuthor;
if (tweetText.length > 140) {
getQuote();
}
首先定义变量,然后使用变量。
请注意,可能是您代码中的其他错误,但除非您更明智地构建代码,否则很难通过查看 。请记住,代码并不仅仅意味着执行,它也意味着可以被人类读取和理解。那包括你。您可以阅读和理解的代码远更容易调试。