jQuery在ScrollTop之后单击事件上未触发的事件:绝对<td>标记

Cli*_*udo 5 jquery mobile-safari ios

我在我的网站上为我的iPhone应用程序提供了"帮助文档",用户可以在我的应用程序中查看UIWebView.它表现出一些奇怪的行为.下面的代码完全适用于Desktop Safari和Firefox,但不适用于移动Safari.您可以在此处查看页面:我的支持页面

通过网络上的一些技术,帮助菜单位置:绝对和"粘滞"到顶部.代码使用了我可以找到的所有技术来启动jQuery,例如空的onclick ="",cursor:元素上的指针.它是第一次工作,但不会乱用用户触摸的NEXT东西,除非你手动滚动页面一点.

Stack上还有其​​他一些类似的问题,但这些建议都不适合我.有什么想法吗.这是我的jQuery代码.

$(".help-menu-list-item").on( "click", function(e) {
    $(".help-menu td").removeClass("selected");
    $(this).addClass("selected");
    $("html, body").animate(
        {scrollTop: $(".help-item-anchor"+"."+$(this).attr('id')).offset().top}, 'slow'
    );
});
Run Code Online (Sandbox Code Playgroud)

注意:我不认为这是scrollTop的问题.它认为这是获取点击事件的问题.如果我将jquery alert()添加到上面的jquery块,它不会触发,除非页面首先手动滚动一点.所以...这是一个点击事件触发问题...但我已经尝试了很多技巧来点击事件.无法解决为什么他们会在第一次开火但是直到手动滚动之后再次开火?

  • 更新*

我删除了所有基于jQuery的粘性菜单,并使用iOS 5支持:position:absolute

以及:-webkit-overflow-scrolling:touch;

...它产生了更简单的代码,用于获取位于顶部的固定菜单,但是STILL之上的jQuery也有同样的问题....我得到了第一个单击事件,但不是那些在它滚动到某个位置之后,除非用户手动滚动页面.

所以......这是jQuery还是iOS?

Cli*_*udo 2

这是一个公认的与固定位置元素相关的 iOS Safari 错误。我提交了一份 ADC 错误报告,该报告被确认为 #10301184 的骗局。因此我无法跟踪状态。我从来没有找到解决办法。

2012 年 9 月 18 日编辑

注意:我发现这个错误现已在 iOS6 中修复并报告!我的代码正在运行。