2011-03-29 13 views
0

私はRuby on Railsを使って簡単なWebアプリケーションを構築しています。それに最近jQuery Mobileを追加し、電話を識別するユーザ文字列の正規表現を追加しました(Railscast 199参照)。jQueryナビゲーション - 同じビュー、新しいコンテンツ

今、私は次のデザイン問題に問題があります:前と次のそれぞれにそれぞれ対応する2つのリンク(左ボタンと右ボタン)を含むヘッダーがあります。私は彼らに同じ内容のリンクを張ってもらう必要があります。そうすることで、私は以下のcoffeescriptを設計して、パラメータをページに追加するだけで、Railsアプリケーションは新しい情報でそれを識別して再レンダリングします。

$(document).ready -> 
    m = parseInt $("#main")[0].getAttribute("data-message") 

    $("a#m_previous").click -> 
     move -1 

    $("a#m_next").click -> 
     move 1 

    move = (direction) -> 
     m += direction 
     window.location = '/?data=' + m` 

これはうまくいきます。前述のボタンには、「/」の方向を指すリンクがあります。しかし、これは、私が望むようなフォワード/バックアニメーションを完成させる代わりに、ページをリフレッシュするだけです。これには、jQueryモバイルが新しいページに移動する必要があります。

だから私の質問はこれです:どのように私は新しいビューをレンダリングするが、同じ情報で前方/後方にも移動するには、ヘッダーボタンを設定しますか。

ご協力いただければ幸いです。

答えて

0

これがあなたの後であるかどうかはわかりませんが、load methodをご覧ください。これを使用して、コンテンツの一部を別のページ要素に読み込むことができます。

$('#main').load('/?data=' + m + ' #content'); 

これは、メインのdiv内のコンテンツをcontent要素に置き換えます。

+0

この場合、レスポンスはページ全体です。ここでjQueryモバイルを使用しています。ですから、#content divには、ビューで使用するすべてのものをラップしています(リンクをクリックすると変更されます)。したがって、私は私のjavascriptを次のように改造しました。 - [pastie link](http://pastie.org/1732932) - ご協力いただければ幸いです。 – Matt

+0

@Matt、引用符と#m + '#mobile_view''の間にスペースがありません。あなたのペストリーhttp://pastie.org/1732977も更新しました。 – Vadim

+0

残念ながら、それは動作しませんでした。それは、「#mobile_view」ブロック全体を「読み込み中」というh1に置き換えることです。すべてのリソースがフィードインされますが、置き換えと移行は単に機能しません。ヘルプ! – Matt

関連する問題