如何在iOS中对输入元素使用Jquery:焦点选择器

how to use Jquery :focus selector on input elements in iOS?

本文关键字:Jquery 选择器 焦点 元素 输入 iOS      更新时间:2024-05-02

我使用的是Jquery 1.7.1和iPad1 iOS3。

我需要在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何时发生变化,因为即使在我"离开"resrective元素之后,它似乎也会持续很长一段时间。

问题
知道为什么我在iOS上检测不到焦点元素吗?一些关于我如何用activeElement设置的提示,比如模糊,我不再有activeElement的输入,也很受欢迎!

谢谢你的帮助!

$(document).on('scroll', function(){
   if (!$("input").is(':focus')) {  
       self.hideAllPanels();
   }
});

这似乎对我有效,但如果输入元素没有焦点,它会在滚动过程中多次触发函数。