Jelly Bean webview应用程序无法完美响应touchend事件

时间:2012-09-11 07:40:51

标签: android-webview android-4.2-jelly-bean

我的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();时会发生这种情况。不确定这是否相关。

2 个答案:

答案 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