如何使用JQuery Mobile同步页面之间的切换选择?

时间:2012-05-04 10:20:40

标签: javascript jquery-mobile

我需要一个多页面的html,每个页面都包含一个相同的切换。当用户更改一个页面上的切换时,其他页面上的所有切换都应该更改(或者至少在加载其他页面时更改)。

我创建了一个小提琴来演示一个简单的场景,每个页面都有两页示例和相同的切换。我希望能够通过切换第1页上的切换来更改第2页上的切换 http://jsfiddle.net/vSr99/

我尝试了很多方法,是的,在尝试使用javascript进行操作后包括刷新,但是甚至没有接近,毫无疑问是由于我的程序性挑战性质: - /

如果有人能提出一个简单的解决方案,我会非常感激!

THX

1 个答案:

答案 0 :(得分: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滑块('刷新')来处理滑块或任何父元素......您必须自己解决这个问题,但同步工作正常: - )