0

私は完全にJavaScriptで構成されたWebサイトを構築しています(楽しみのために)。現在、ウェブサイトの一部をその言語に変更する言語を選択するオプションを追加しています (ほとんどのハードコードされた単語と文)。

私は今、関数に値を渡して ajax 呼び出しを行い、その値と言語セットに基づいて単語/文を取得することで、これを実行しようとしています。

しかし、ajax は非同期であるため、機能しません。私が望むことだけを行う素晴らしい例を見つけましたが、1つの問題があります。

これがフィドルコードです:http://jsfiddle.net/6xhxT/5/

$('#test').text(realData);

この行を使用すると(例ではブロックされています)、うまく機能しますが、問題は、データを入れているdivのIDがわからないことです.

こんな感じで使ってます

<div class="whatever">getWord(1)</div>

したがって、例は機能しますが、入力したdivのIDが必要ですが、それは望ましくありません。関数を呼び出す場所と同じ場所に配置したい。

async: false を使用できることは知っていますが、使用したくありません。

私が望むものが不可能な場合、何を使用すればよいか、配列または sessionStorage を使用できますが、ロードする必要がある単語/文がおそらく数千あるという事実を考慮すると賢明です。

4

1 に答える 1

0

私はあなたのアプローチが何であるかを本当に理解することはできませんが、翻訳されるべき要素をループして要素$( this )を参照するために使用することができるように思えます。

$( '.i18n' ).each( function() {
    var $this = $( this );
    $this.load( 'url/to/translator', { text: $this.text() } );
});

デモ: http: //jsfiddle.net/eNK9w/

于 2013-02-27T10:53:23.603 に答える