Jquery mobile 1.4 na iOS stałe elementy w dolnej części strony ukrywają tekst wejściowy na fokusie
Cześć, buduję aplikację Cordova 3 z Jquery Mobile 1.4
Safari i Chrome na moim komputerze Mac nie mają żadnych problemów z poniższym, ale kiedy wdrażam na prawdziwym urządzeniu lub symulatorze iOS i chcę wpisywać pola, otrzymuję dolne stałe elementy strony przesuwające się w górę i nakładające się na elementy wejściowe. Kursor miga we właściwej pozycji, gdzie znajduje się pole wprowadzania, ale suwak stopki go ukrywa.
Aby to było proste, moja strona wygląda tak:
[naprawiono nagłówek] div z tekstem wejściowym div z tekstem wejściowym div z tekstem wejściowym [stopka stała]
jedna z instancji tekstu wejściowego
<input data-role="none" class="inputCalc gray_br" type="text" id="grams4" value="37"><div class="macro_g">grams</div>
suwak na dole
<div id="cal_slider" style="position:fixed; bottom:0px; left:0px; height:57px; width:100%; background-color:#E2E2E2;">
<form style="padding-top:6px" class="full-width-slider"><label for="slider-12" class="ui-hidden-accessible">Slider:</label> <input type="range" data-highlight="true" name="slider-12" id="slider-12" min="0" max="100" value="50"></form>
</div>
Jquery, aby pokazać ukrywanie podczas zdarzeń ostrości i rozmycia
$(document).on('focus', 'input , text', function(e){
// I have try with --> $("#grams4").focus( function () {... // but it's the same
console.log("on focus fired");
$("#cal_slider").hide();
});
$(document).on('blur', 'input, text', function(e){
console.log("on blur fired");
$("#cal_slider").show();
});
Więc próbowałemskupiać() iplama() zdarzenia do przełączania (pokazywania i ukrywania) suwaka. Działa dobrze w Chrome i Safari.
Ale na prawdziwym urządzeniu (iPhone 5 iOS7) po dotknięciu pola tekstowego wejściowego cykl działa tak jak oczekiwano tylko za pierwszym razem:
(1) Dostaję dziennik fokusa, stopka jest ukryta, (2) pojawia się klawiatura i (3) mogę wpisać tekst wejściowy.
Następnie (4), gdy dotknę DONE, klawisz ukrywa się i jest OK. (5) Dostaję zdarzenie rozmycia w konsoli, a stopka z suwakiem pokazuje się ponownie. Idealny.
Jeśli jednak dotknę ponownie dowolnego pola tekstowego, otrzymuję dziennik rozmycia w konsoli, a nie fokus zgodnie z oczekiwaniami, a suwak wraca ponownie przed polem wprowadzania.
Jak powiedziałem powyżej w Chrome, Safary działa doskonale.
Jakieś inne pomysły, jak wykrywać keybord on / off, może bez obsługi zdarzeń?