weui中confirm,alert坑之解决不弹

作者: 23号 分类: 前端技术 发布时间: 2021-12-31 16:01

不弹出写法:

weui.confirm('是否',function(){
	//逻辑行1
	weui.alert('是');
	//逻辑行2
},function(){
	//逻辑行1
	weui.alert('否');
	//逻辑行2
});

解决办法:

weui.confirm('是否',function(){setTimeout(function(){
	//逻辑行1
	weui.alert('是');
	//逻辑行2
},300)},function(){setTimeout(function(){
	//逻辑行1
	weui.alert('否');
	//逻辑行2
},300)}); 

如果 weui.alert()之后还要weui.alert()或weui.confirm(),参照以下:

weui.confirm('是否',function(){setTimeout(function(){
	//逻辑行1
	weui.alert('是',function(){setTimeout(function(){
		//逻辑行2
		weui.alert('再弹',function(){setTimeout(function(){
			//逻辑行3
		},300)})
	},300)})
},300)}); 

总结:
1 弹层有动画延时约300ms,貌似weui.alert()和weui.confirm()等共用同弹出层,没完成动画时调用会失效。
2 弹出的是层,不是窗口(不同于原生的alert)。所以是非阻塞(异步)的,点击后执行的代码要放在回调函数里。
3 逻辑里含有多次交换操作的,要分布在每次弹出后的回调函数里,以便看起来更像同步方式编程。

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!