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);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM