0

各ページに同一のトグルを含む複数ページの html が必要です。ユーザーが 1 つのページのトグルを変更すると、他のページのすべてのトグルが変更されます (または、少なくとも他のページの読み込み時に変更されます)。

簡単なシナリオを説明するために Fiddle を作成しました。2 ページの例と、各ページに同じトグルがあります。ページ1のトグルを切り替えることで、ページ2のトグルを変更できるようにしたいと思います http://jsfiddle.net/vSr99/

私はいくつかの方法を試しましたが、javascript で操作しようとした後に更新を含めましたが、プログラムに挑戦した性質のために、間違いなく近づくことさえできませんでした:-/

誰かが簡単な解決策を提案できれば、とても感謝しています!

どうも

4

1 に答える 1

1

ボタンがクリックされたときにグローバル属性を設定して、次のように $('html') に保存してみてください。

 $('html'). attr('toggleIs',true);

次に、pagebforeshowでこれを確認し、ボタンの状態に応じて表示されるすべての新しいページのボタンにトグル状態を追加できます。

編集
これはjsfiddleです(最初のアラートは無視してください)。

html は次のとおりです。

$(document).on('change', '.your_select', function(){
  // set
  if( $(this).find('option:selected').val() == "on" ){
       $('html').data('toggle', 'on');
       } else {
       $('html').data('toggle', 'off');
       }
  });

$(document).on('pagebeforeshow', '.ui-page', function(){

  var that = $(this).find('.your_select');
  // clear
  that.find('option').removeAttr('selected');
  // reset
  if($('html').data('toggle') == "on" ){
      alert("should be on")
      that.find('select option[value="on"]').attr('selected', 'selected')
      } else {
        alert("should be off")          
        that.find('option[value="off"]').attr('selected', 'selected')
        }
 // refresh slider
 ... 
 });

ご注意ください:

  • jquery 1.6.4 を使用している場所を確認するのに時間がかかったので、私の on-bindings が機能しませんでした。保持したい場合は、バインディングにliveを使用して、取り込まれているページもキャプチャする必要があります。
  • すべてのスライダーにクラスを与えて、それらをまとめました
  • スライダーまたは親要素でJQMスライダー(「更新」)を機能させることができません...自分でそれを理解する必要がありますが、同期は機能しています:-)
于 2012-05-05T06:27:43.487 に答える