使用jQuery Mobile动态更改flip toggle的值

我正在使用jQuery Mobile,我在cookie中保存了一些设置。 重新加载设置页面时,我会读取cookie以设置所有值。 我在设置翻转拨动开关时遇到问题。 大多数元素只需触发键盘或changed事件,但我不确定翻转切换如何从选择框中获取其值。 有任何想法吗?

更改开关的值后,您必须刷新它才能切换动画:

 $('#Switch2').val('on').slider("refresh"); 

它看起来好像坏了。

转到页面: http : //jquerymobile.com/demos/1.0a2/#docs/forms/forms-switch.html并使用firebug控制台运行以下命令:

 $('#slider2').val('on').trigger('keyup'); 

它会改变开关“on”部分的宽度,但不会移动滑块。

所以答案是:等待JQM的发布:)

这里发布的错误: https : //github.com/jquery/jquery-mobile/issues/issue/676

我认为您可以像普通HTML一样设置值,并且翻转切换开关将自动拾取。 即

  

实现此目的的一种简单方法是设置值,触发创建和刷新。 之后,您需要触发slidestop事件以执行绑定到滑块的任何操作。 例如:

 $('#mySlider').val('on').trigger('create').slider("refresh"); $('#mySlider').trigger('slidestop'); 

我在jQuery mobile ver上测试了这个。 1.3.0

使用$('#slider2').val('on')将改变值,正如它应该的那样。 但是,它不会将ui-btn-active等CSS类添加到该option ,也不会从该option删除该类。 如果要动态更改option ,则必须手动处理这些部分(而不是jQuery Mobile)。

这对我有用:

  if (someCondition) { $('#slider').val('off'); } else { $('#slider').val('on'); } try { $('#slider').slider("refresh"); } catch (err) { console.log ("Error occurred refreshing slider (probabily first time!)"); }