mui Picker DtPicker 固定内容以及变动内容Picker 不同情况下的应用 提高效率
目的是:
保证不同的Picker只创建一次,多次创建Picker系统不会自己销毁,X掉一个之后后面可能会出现下一个。
保证实现需求的情况下,优化代码,提高效率。
1.如果picker中的内容为定值
var wnddir = [{
		text: "顺风",
		value: 0
	}, {
		text: "逆风",
		value: 1
	}];
	var wnddirPicker = new $.PopPicker();----生成picker
	wnddirPicker.setData(//装载值
		wnddir
	);
	var showWnddirPicker = document.getElementById('wnddir');
	showWnddirPicker.addEventListener('tap', function(event) {//点击事件
		wnddirPicker.show(function(items) {
			showWnddirPicker.value = items[0].text;//展示内容
//此处可以写picker选中值所触发的其它情况
		});
	}, false);
2.如果多个时间框Picker
var days = $(".time");//如果一个界面多个时间框 直接控制所有时间框
	days.each(function(i, day) {
		day.addEventListener('tap', function() {
			var _self = this;
			var id = this.getAttribute('id');
			if(_self.picker) {//如果picker已经存在
				_self.picker.show(function(rs) {
					document.getElementById(id).value = rs.text;
				});
			} else {//picker不存在
				var optionsJson = this.getAttribute('data-options') || '{}';
				var options = JSON.parse(optionsJson);
				_self.picker = new $.DtPicker(options);
				_self.picker.show(function(rs) {
					document.getElementById(id).value = rs.text;
				});
			}
		}, false);
	});
3.Picker中内容会变化的情况
var sectnmtmPicker = new $.PopPicker();
showSectnmtmPicker.addEventListener('tap', function(event) {
		rvsecttm = [];//此处是全局变量
		for(var i = 0; i < __rsvcttm.length; i++) {//__rsvcttm为全局变量(就是会变化的值)此处也考虑了进程问题, 如果在rvsecttm的赋值放在外面,可能会先走赋值,后查到__rsvcttm的值,导致Picker中没有值,所以放在点击事件中
			var a = {
				value: __rsvcttm[i].testno,
				text: __rsvcttm[i].testno
			}
			rvsecttm.push(a);
		};
		sectnmtmPicker.setData(
			rvsecttm
		);
		sectnmtmPicker.show(function(items) {
			showSectnmtmPicker.value = items[0].text;
		});
	}, false);
                    
                
                
            
        
浙公网安备 33010602011771号