mui.picker和mui的$.back()衝突解決
阿新 • • 發佈:2018-12-15
最近有需要用到mui的選擇器外掛,初步完成後被告知多次點選選擇框後無法返回上一頁面,如圖:
排查原因結果是picker選擇器重複呼叫:
// 生成時間選擇器 function renderDateSelect(){ var myDate = new Date(); //獲取當前年 var year=myDate.getFullYear(); //獲取當前月 var month=myDate.getMonth()+1; //獲取當前日 var date=myDate.getDate(); var dtPicker = new mui.DtPicker({ type:"date", beginDate:new Date(year-6,month-1,date), endDate:myDate }); $("#dateSelect").on("touchstart",function(){ dtPicker.show(function(selectItems){ $("#dateSelect").val(selectItems.text); }) }); }
因每點選一次按鈕,dtPicker.show()執行一次,所以造成選擇器的重複載入,解決方法如下:
$("#dateSelect").on("touchstart",function(){
if($(".mui-dtpicker").hasClass("mui-active")){
return false;
}else{
dtPicker.show(function(selectItems){
$("#dateSelect").val(selectItems.text);
})
}
});
因mui.picker選擇器的展示與隱藏是通過新增mui-active類名來實現的,如圖: