mui dtpicker 日期控件 異常彈出 彈出兩次

情況一

背景/需求:

做項目的時候,發現mui的時間控件picker會出現異常彈出。

在點擊時間選擇的div時,控件正常彈出,沒有問題。有問題的是,點擊其他輸入框,在彈出軟鍵盤的同時,時間控件也會隨之出現(在軟鍵盤下方,屏幕移下去時會發現)

這個情況存在於ios上,安卓機測試時暫時沒有發現。


找了很久,提出此問題者寥寥。不過最後還是找到了一個類似的問答:

【報bug】picker選擇器和軟鍵盤的衝突

後來師父復現的時候也找出了問題,並給出瞭解決辦法:

出現這個bug的時候都是沒有點“確定”,直接點控件外部或者取消。

dtpicker.show(function(e) {

    XXX

    dtpicker.dispose()

});

(show裏面調用的dispose() 指的是點擊“確定”之後,將控件銷燬)

直接點控件外部或者取消,這樣控件其實是被隱藏了,而沒有被銷燬。

解決的辦法是在 hide 里加一行 self.dispose()

然後把dispose 裏的 self.hide() 註釋掉。(不然兩者會調來調去...

 

情況二

出現的問題:

測試時發現,有時先點擊輸入項,再點擊時間控件,時間控件異常,會同時彈出2個。


後來發現:

在點擊日期控件後,無論是直接失去焦點還是“確定”,在點擊輸入框並失去焦點後都會閃現出時間控件。

如果先前沒有點擊日期控件,則在輸入框失去焦點時不會閃現。

想着時間控件在失去焦點時可能還是沒有被銷燬

於是在mui的picker.js中做了些修改:

 

我把每一個addEventListener('tap',function(){

       self.hide();

},false);

self.hide()後面都加了dispose()

然後控件是不會重複跳出來了,但是單個控件會跳得老高。目前還沒有找到解決方法。

等找到了再補充。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章