我的webview应用程序适用于早于Jelly Bean的Android版本中的touchend事件。但在Jelly Bean中,touchend事件并不可靠。特别是在可滚动的div上,touchend事件有时不被触发,整个应用程序停止响应任何touchend事件,我得到带有“webcoreglue”标签的Log消息和文本“不应该发生:没有基于rect的测试节点发现” 现在我滚动了一点点后,它开始正常响应touchend。 请帮助。
HTML
<div id="srpanel" class="panel">
<div class="main sr-list">
<div class="sr-list-item-action">
</div>
</div>
</div>
JS
$('.sr-list-item-action').bind('touchend', function(){
//some code
});
我在for循环中为列表中的每个项目使用div'sr-list-item-action'。
因此,单击列表中的项目只能工作一些时间。否则,当它不起作用时,整个屏幕实际上被冻结并停止接收任何touchend事件,直到我滚动。
我观察到的另一件事是,当我进入列表的下一页时,当我进行$(document).scrollTop();
时会发生这种情况。不确定这是否相关。
答案 0 :(得分:3)
有完全相同的问题。经过许多不眠之夜,这让我得救了:
window,html,body {
overflow-x:hidden !important;
-webkit-overflow-scrolling: touch !important;
overflow: scroll !important;
}
答案 1 :(得分:2)
将所有'touchend'更改为绑定旁边的'click'。这对我有用。 这个链接很有帮助:Android WebView JellyBean -> Should not happen: no rect-based-test nodes found