質問

私は問題を抱えています .getScript いくつかの奇妙な場合に作業します。

たとえば、これは必要なときにのみスクリプトをロードするように機能します。

function twitterSDK() {
    $jQ.getScript('http://platform.twitter.com/widgets.js');
}

function diggShare() {
    $jQ.getScript('http://widgets.digg.com/buttons.js');
}

function buzzShare() {
    $jQ.getScript('http://www.google.com/buzz/api/button.js');
}

しかし、私が書いたいくつかのスクリプトでは機能していないようです。私が電話した場合 .getScript このJSファイルを取得するには、パスペビンにアップロードしました( http://pastebin.com/gvfcmj4p )そして電話してください tweetStream(); 何も起こりません。ただし、以下を行うと機能します。

var twitter = document.createElement('script');
twitter.type = 'text/javascript';
twitter.async = true;
twitter.src = '/path-to/tweet.js';
$jQ('.twitter-section').append(twitter);
tweetStream();

私は何が間違っているのですか?どんな助けも素晴らしいでしょう、ありがとう!

PSどの方法がより高速またはより効率的ですか?

注:私のコードはPastebinでホストされていません。サーバーにある.JSファイルのコンテンツをそのサイトにアップロードしただけなので、簡単に共有できます。私はホスティングのためにパステビンをヒルしていません;)

役に立ちましたか?

解決

jQuery's $jQ.getScript() 非同期呼び出しです。だからあなたが電話していたなら tweetStream() 直後 getScript(), 、スクリプトが到着する前に実行されます。

あなたは電話することができます tweetStream() 代わりに(またはそのように)コールバックから。

$jQ.getScript('/path-to/tweet.js', function() {
    tweetStream();
});

または、あなたがの価値を気にしない場合 thistweetStream().

$jQ.getScript('/path-to/tweet.js', tweetStream);
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top