2016-09-21 17 views
0

私はランダムな引用符ジェネレータをコーディングしており、引用符をtwitterに共有できるようにしたいと考えています。 http://codepen.io/nachamuami/pen/KrRYpY 機能をつぶすことによって、コードによって生成された引用ではなく、全体の機能を呼び出すようになりました。どんなポインタも非常に高く評価されます。引用符でひっくり返す

function getQuote(){ 
var arrayLength = quoteArray.length; //number of entries in array 
var randomValue = Math.floor(Math.random()*arrayLength); 
var newQuoteY = quoteArray[randomValue].yiddish; 
var newQuoteE = quoteArray[randomValue].translation; 

$('#inYiddish').html(newQuoteY); 
$('#inEnglish').html(newQuoteE);}; 



$('#quote-button').click(function(){ 
      getQuote();   
}); 



$('#twitter-button').click(function(){ 
      window.open("https://twitter.com/intent/tweet?text=" + getQuote); 
     }); 
}); 

答えて

1

声明

window.open("https://twitter.com/intent/tweet?text=" + getQuote); 

は実際にURIに関数自体を追加しています。 JavaScriptは、文字列ではありますが、文字列ではありますが、getQuoteの場合とまったく同じように宣言しています。

あなたは次のことを意味している可能性があります。この場合

window.open("https://twitter.com/intent/tweet?text=" + getQuote()); 

getQuoteは、戻り値を持たないよう、あなたはまだ、エラーが発生しようとしているので、つぶやきは、単にundefinedを言うだろう。これを修正するには、getQuoteに文字列を返す必要があります。あるいは、newQuoteYnewQuoteEgetQuoteの外に宣言することもできますが、まだそれによって設定されています。これは、現在表示されているイディッシュの見積もりがツイートされている次のようなものを許可します。

window.open("https://twitter.com/intent/tweet?text=" + newQuoteY); 
+0

ありがとうございました。私は関数の外でnewQuotesを定義しました。しかし、今私は別の問題に直面した、私はそれが未定義となる最初の場所の所有者の引用符をtweetingしようとする場合。 –

+0

@AharonHyman 'newQuoteY'の元の値を最初の引用符にするか、' $( '#inYiddish')。text() 'の値を取得する必要があります。私は個人的には、ほとんどの場合、以前はJavaScriptによって設定されていた何かを得るために、余分なDOMクエリの不要性を避けるために前者を個人的に行っていました。 –

+0

@AharonHyman pageloadで 'getQuote()'を一度実行すれば、ユーザーがページを開くたびに別の見積もりを追加することができます。 –

関連する問題