Android Webview Javascript点击事件未按原样触发

时间:2013-07-16 14:20:45

标签: javascript android jquery mobile browser

我有一个网页,其中有很多不同的DOM设置,其中点击事件被绑定。

但在某些情况下,点击事件不会触发。 我用同样的方式写了我所有的活动: $( '#元素')点击(函数(){...});

当我点击那些不起作用的元素时,我已经将其缩小到仅提醒一些东西。但没有任何反应。

这只发生在Android手机中: 三星Galaxy说明4.1.2 三星Galaxy s3 Mini 4.1.2 当我在webview中运行时, 如果我在Chrome移动浏览器中运行它,它可以很好地工作。

通常,点击事件放在“a”标签上,标签和输入类型隐藏在其中。

是否有一些未知的规则,不使用其中的标签或标签或为Android浏览器破解这一点?或者是否有其他解决此类错误的方法?

PS。当我在彼此之后多次(5-6次)点击该元素时,它会消失......

3 个答案:

答案 0 :(得分:4)

您是否为WebView启用了javascript?

webView.getSettings().setJavaScriptEnabled(true);

答案 1 :(得分:1)

首先,您不应该使用.click(),因为它已被弃用。相反,使用

$('#id').on('click', function(event) { 
    //whatever 
});

是否使用javascript动态插入元素?如果是这样,您将需要使用事件委托,正如yshrsmz建议的那样。另外,在您的示例中,您编写了#element,这是针对ID为element的元素,您只应在dom中使用一次id。而是将类应用于应触发单击的所有元素。

确保在文档就绪时设置所有绑定。

通过W3C验证器运行HTML可能是值得的,以确保它全部有效。如果没有,这可能会导致错误。

最后,检查您的Android logcat,看看点击元素时是否有任何错误报告。

答案 2 :(得分:0)

如果你使用事件委托而不是通常的点击事件,那就没关系......(大部分时间)

$(document).on('click', '#element', function(){});