当我尝试发布推特功能时,我得到undefined
。 quote_text
变量应该是全局的,因此quoteTwitter
函数可以访问吗?
$(document).ready(function () {
loadJSON();
getQuote();
console.log(quote_text);
});
// Declare variables
var json_obj;
var num = 0;
var quote_text = "";
// Display a quote - this method is not perfect since the random number will repeat itself and it appears as if no new quote is delivered
function getQuote(callback) {
var html = "";
num = randNum();
quote_text = json_obj[num].quote;
html += "<strong> " + quote_text + " </strong>";
$("#quote").html(html);
$("#author").html(json_obj[num].author);
};
// Post the current quote on twitter
function quoteTwitter(quote_text){
var tweet = quote_text;
window.open('https://twitter.com/home?status=' +encodeURIComponent(tweet),"_blank");
}
答案 0 :(得分:2)
您的函数定义包含quote_text
作为参数,因此在函数内部尝试使用它而不是具有相同名称的全局变量。
您可以通过更改此内容来解决此问题:
function quoteTwitter(quote_text){
到此:
function quoteTwitter(){
...但是从长远来看,如果可能的话,将正确的值作为参数传递可能会更好,而不是依赖于全局变量。