9

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

4

6 回答 6

24

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

$('#Switch2').val('on').slider("refresh");
于 2011-06-23T20:39:14.427 回答
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

于 2010-12-14T08:18:58.980 回答
1

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

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

我已经在 jQuery 移动版上对此进行了测试。1.3.0

于 2013-04-12T07:42:28.090 回答
1

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

<select name="slider" id="slider" data-role="slider">
  <option value="off">Off</option>
  <option value="on" selected="selected">On</option>
</select>
于 2010-12-07T00:39:09.077 回答
0

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

于 2011-04-21T13:41:40.810 回答
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!)");
     }
于 2012-10-19T13:14:06.890 回答