我使用的是jQuery1.7.1和iPad1 iOS3。
除非输入元素有焦点,否则我需要在滚动启动上触发一个函数。下面的函数工作了很长一段时间,但突然之间就不起作用了(我想是因为切换到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何时正在改变,因为它似乎持续了很长一段时间,即使是在我“离开”这个不赞成的元素之后。
问题
知道为什么我不能检测到iOS上的焦点元素吗?一些提示,我可以如何设置与activeElement,因此模糊,我不再有输入,因为activeElement也是受欢迎的!
谢谢你帮忙!
发布于 2012-07-27 18:08:30
$(document).on('scroll', function(){
if (!$("input").is(':focus')) {
self.hideAllPanels();
}
});这似乎适用于我,但如果输入元素没有焦点,它将在滚动期间多次触发该函数。
https://stackoverflow.com/questions/11693201
复制相似问题