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

时间:2010-11-24 05:53:10

标签: jquery mobile jquery-mobile

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

6 个答案:

答案 0 :(得分:24)

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

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

答案 1 :(得分:3)

看起来好像坏了。

转到页面: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

答案 2 :(得分:1)

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

<select name="slider" id="slider" data-role="slider">
  <option value="off">Off</option>
  <option value="on" selected="selected">On</option>
</select>

答案 3 :(得分:1)

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

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

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

答案 4 :(得分:0)

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

答案 5 :(得分:0)

这对我有用:

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