mui('.mui-switch').each(function() {
var _this = this;
mui(_this).switch();
_this.addEventListener("toggle", function(event) {
var id = _this.getAttribute("title");
if (event.detail.isActive) {
openOrClose(0, id, _this);
event.detail.isActive =0;
} else {
openOrClose(1, id, _this);
event.detail.isActive =1;
}
});
});
给switch一个监听,开启关闭操作触发后面的操作,当开启失败或者关闭失败,如何让按钮回到初始状态,用@DCloud_MUI_FXY 给提供的方式
mui('.mui-content .mui-switch')['switch']();
是可以达到效果,但是又再一次的触发了上面的监听,这样就是一个死循环,请问有没有什么解决办法?
ygs88 (作者)
我的业务用的Ajax异步,这个isManual全局参数一直是true,我异步采用async: false,也没用!
2015-05-25 18:28
DCloud_UNI_FXY
我的代码只是让你参考。如果是ajax异步。那你应该在异步完成后,先设置isManual=false,然后调用mui(self)['switch']().toggle();
2015-05-25 18:39
ygs88 (作者)
已解决,全局变量在这里由于异步,会失去意义,我采用的是plus.storage.setItem("isManual", "true"); 谢谢!
2015-05-25 19:04
DCloud_UNI_FXY
全局变量在这里由于异步,会失去意义。啥意思?你有多个switch?多个的话,把isManual设置给当前switch就行了。var self = this;if(self.isManual!==false){....self.isManual=false;....}else{self.isManual=true}
2015-05-25 19:29