0

編集:明確にするために、 #capture-photo ボタンをアクティブにしたいのですが、プログラムで別のページに移動したときにリセットしたいです。

現在、jQuery をフレームワークとして使用して Phonegap/Cordova アプリを構築しています。1 つのシナリオを除いて、ほとんどは順調です。

ナビゲーションバーと 3 つのボタンを備えた固定フッター (うまく機能します) があります。

2 つのボタンは ajax なしで通常のページに移動し、うまく機能します。

1 つのボタンが Camera インターフェイスに接続され、(つまり) iPhone のカメラがトリガーされます。キャンセルすると画面に戻りますが、カメラのボタンはアクティブな状態とスタイルになっています。

失敗時に changePage をトリガーしていますが、ページがアクティブになりますが、ボタンの状態は変更されません!? クラスを手動で削除しようとしましたが、うまくいきません!? 何かがアクティブ状態のクラスの追加を遅らせているようです。

私はそれを間違っていますか?changePage() はアンカーを見つけてトリガーするべきではありませんか?

アルバム ページのフッターは次のようになります。

  <div class="footer" data-role="footer" data-position="fixed" data-id="footer-tab">
    <div data-role="navbar" class="nav-glyphish">
     <ul>
        <li><a id="welcome" href="#welcome"></a></li>
        <li><a id="capture-photo"></a></li>
        <li><a id="show-album" href="#album" class="ui-btn-active ui-state-persist"></a></li>
     </ul>
    </div>
  </div>

繰り返しますが、#capture-photo ボタンには対応するページがありませんが、クリックするとアクティブになり、カメラをキャンセルすると、jqm は changePage をキャッチして #show-album に移動しますが、#capture-photo ボタンはまだアクティブとしてマークされています。

PS私は両方のページに同じフッター(data-role = 'footer')を持っていますが、それぞれのアンカーにはui-btn-activeとui-state-persistが設定されています。この重複したコードに少し違和感を覚えますが、永続化されたヘッダー/フッターを解決する唯一の方法だと思いますか?

4

1 に答える 1

0

残念ながら、私はそれを少し醜い方法で解決しました。$.mobile.changePage('#album') を実行する前に、すべての固定フッター ナビゲーション バーで「vclick」イベントを手動でトリガーします。醜いですが、今のところ動作します... :o

// HATE DOING THIS! BUT JQM IS NOT WORKING WITH ME ON THIS.
  $('#welcome #show-album').trigger('vclick')
  $('#album #show-album').trigger('vclick')
于 2012-07-30T19:05:01.923 に答える