Jquery mobile 1.4 no iOS, os elementos fixos na parte inferior da página ocultam o texto de entrada no foco
Olá, estou construindo o aplicativo cordova 3 com o Jquery mobile 1.4.
O Safari e o Chrome no meu mac não têm problemas com o seguinte, mas quando implanto no dispositivo real ou no simulador do iOS e quero digitar os campos, os elementos fixos inferiores da página são movidos e sobrepostos aos elementos de entrada. O cursor está piscando na posição correta, onde está o campo de entrada, mas o controle deslizante do rodapé está ocultando-o.
Para simplificar, minha página fica assim:
[cabeçalho fixo] div com texto de entrada div com texto de entrada div com texto de entrada [rodapé fixo]
uma das instâncias de texto de entrada
<input data-role="none" class="inputCalc gray_br" type="text" id="grams4" value="37"><div class="macro_g">grams</div>
o controle deslizante na parte inferior
<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 para mostrar ocultar em foco e desfocar eventos
$(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();
});
Então, eu tenho tentado comfoco() eborrão() eventos para alternar (mostrar e ocultar) o controle deslizante. Funciona bem no Chrome e Safari.
Mas no dispositivo real (iPhone 5 iOS7) quando toco no campo de texto de entrada, o ciclo funciona como esperado apenas na primeira vez:
(1) recebo um registro de foco, o rodapé está oculto, (2) o teclado aparece e (3) posso digitar o texto de entrada.
Então (4), quando toco em CONCLUÍDO, o teclado é oculto e tudo bem. (5) Recebo um evento de desfoque no console e o rodapé com o controle deslizante é exibido novamente. Perfeito.
No entanto, se eu tocar novamente em qualquer um dos campos de texto de entrada, recebo um log de desfoque no console e não um foco conforme o esperado, e o controle deslizante volta novamente na frente do campo de entrada.
Como eu disse acima no Chrome, o Safary funciona perfeitamente.
Alguma outra idéia de como ativar / desativar o teclado, talvez sem manipuladores de eventos?