Jquery1.7.1とiPad1iOS3を使用しています。
入力要素にフォーカスがない限り、scrollstartで関数を起動する必要があります。以下の関数は長い間機能していましたが、突然機能しなくなりました(Jquery 1.7.1に切り替えたため、見た目はおかしいと思います)
$(document).on('scroll', function(){
if ( !$("input:focus").length > 0 ) {
self.hideAllPanels();
}
});
具体的には$('input:focus')。length = 0ですが、スクロールイベントの前にトリガーされるフォーカスイベントを検出できます。
私は以下を使用して回避策をいじっています:
if ( !$(document.activeElement).get(0).tagName == "input" ){
....
}
しかし、activeElementがいつ変更されるかはわかりません。これは、resprective要素を「離れた」後でも、かなりの期間持続するように見えるためです。
質問:
iOSでフォーカスされた要素を検出できない理由はありますか?activeElementを使用してこれを設定する方法のヒントがいくつかあるので、ぼかしの場合、activeElementも歓迎されるため、入力がなくなります。
手伝ってくれてありがとう!