llyzlc
llyzlc
  • 发布:2015-02-05 17:27
  • 更新:2017-11-03 12:08
  • 阅读:9255

请问switch开关,怎样通过代码去控制。

分类:MUI

请问switch开关,怎样通过代码去控制。???

2015-02-05 17:27 1 条评论 负责人:无 分享
已邀请:
小人物

小人物

还有问题:
通过如下代码对switch进行设置。如果被设置的switch(mySwitch)没有被动过,那还一切正常,如果人动了一下switch,那中间的那个小圆型的拨快就不再跟着状态动了。

> var mySwitch = document.getElementById("mySwitch");
//添加mui-active类,打开开关
mySwitch.classList.add('mui-active');
//删除mui-active类,关闭开关
mySwitch.classList.remove('mui-active');

看看最下面的滑块,应该为开,但是滑块却在off的位置。有没有什么解决办法?

  • ruien88

    已经找到解决方案了,根据下面人的思路,我终于找到了解决方案:


    设置开的时候同时设置mui-switch-handle的一个样式-webkit-transform 为ranslate3d(16px, 0, 0), 这里的16px适用于mui-switch-mini的样式,其他的switch可以根据情况调整长度

    $('#switchID').addClass( 'mui-active');

    $( '.mui-switch-handle').css("-webkit-transform" , "translate3d(16px, 0, 0)");

    同理,设置为关闭的时候应该同时设置mui-switch-handle的一个样式-webkit-transform 为ranslate3d(0, 0, 0);

    $('#switchID').removeClass( 'mui-active');

    $( '.mui-switch-handle').css("-webkit-transform" , "translate3d(0, 0, 0)");

    说白了,就是人工设置一下handle的初始位置

    2016-07-26 19:40

576501565

576501565

重置样式确实不行,需要手动添加样式,因为控件本身触发事件和通过代码控制的时候生成的样式不一样,少了样式: -webkit-transform: translate3d(0, 0, 0)

小人物

小人物

哎~ 有没有html的大拿能帮帮忙呢?怎么没有回应哎

四月技术伍成才

四月技术伍成才

官方能否用个js来控制整个switch,是打开还是关闭,方便用js控制整个状态,应为toggle 只是改变状态,如果再不知道switch 的初始情况时 toggle 得到的是相反的结果。。。

w***@yeah.net

w***@yeah.net - 还没有

我是通过判断开关的点击事件,然后再让它toggle的.

mui(".table-wrap").on("tap",".mui-switch",function(e){
var eTarget = e.target;//mui-switch
while(!((/mui-switch$/.test(eTarget.className))||(/mui-switch[\s{0,}]/.test(eTarget.className)))){
eTarget = eTarget.parentNode;
}
mui(eTarget).switch().toggle();
})

  • w***@yeah.net

    发现一个问题 通过拖拽或者是长按的方式还是能改变开关的状态

    2017-11-03 15:36

DCloud_UNI_FXY

DCloud_UNI_FXY

mui('#mySwitch').switch().toggle();//切换开关状态
  • 雨落

    这个切换它会把开弄成关 关弄成开 每次打开这个页面都会无限循环这个动作的

    2017-06-16 14:33

  • 雨落

    不能固定一个状态

    2017-06-16 14:34

  • x***@qq.com

    小圆点 它不回去 这是为什么?

    2018-07-03 14:15

该问题目前已经被锁定, 无法添加新回复