2013-07-16 51 views
3

我得到了一个网页,有很多不同的DOM设置,其中点击事件绑定。Android Webview Javascript单击事件没有触发,因为它应该

但在某些情况下,点击事件不会触发。 我用同样的方法写了我所有的事件: $('#Element')。click(function(){...});

我已经把它缩小到只是提醒某些事情,当我点击那些不起作用的元素时。但没有任何反应。

这只是发生在Android手机: 三星Galaxy Note 4.1.2 三星Galaxy S3迷你4.1.2 当我在WebView中运行, 如果我在Chrome移动浏览器上运行它,它完美的作品。

一般来说,点击事件放在'a'标签上,标签和输入类型隐藏在里面。

有没有一些未知的规则不使用它内的标签或标签或东西,破解了这对于Android浏览器?还是有这种类型的错误的其他解决方案?

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

回答

4

您是否为WebView启用了JavaScript?

webView.getSettings().setJavaScriptEnabled(true); 
+0

是的,正如我写的,并非所有的点击事件都被窃听。 –

0

,如果你使用事件代表团,而不是通常的单击事件,这将是罚款......(大部分时间)

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

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

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

是否用javascript动态插入元素?如果是这样,你将需要使用事件委托,如yshrsmz所示。另外,在你的例子中,你写了#element,这个目标是一个ID为element的元素,你应该只在dom中使用一次id。相反,将类应用于应触发点击的所有元素。

确保所有绑定正在文档准备就绪上设置。

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

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