5

我有一个网页,其中包含许多不同的 DOM 设置,其中绑定了点击事件。

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

当我点击那些不起作用的元素时,我已经缩小了范围以提醒某些东西。但什么也没发生。

这只发生在 Android 手机上:Samsung Galaxy note 4.1.2 Samsung Galaxy s3 Mini 4.1.2 当我在 webview 中运行时,如果我在 Chrome 移动浏览器中运行它,它可以完美运行。

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

是否有一些未知的规则不使用其中的标签或标签,或者为 android 浏览器破解这个问题?或者这种错误还有其他解决方案吗?

PS。当我多次(5-6 次)单击该元素时,它会触发...

4

3 回答 3

5

您是否为您的 WebView 启用了 javascript?

webView.getSettings().setJavaScriptEnabled(true);
于 2013-07-16T14:29:18.140 回答
1

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

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

元素是用javascript动态插入的吗?如果是这样,您将需要使用事件委托,正如 yshrsmz 所建议的那样。此外,在您的示例中,您编写#element,这针对具有 id 的元素element,您应该只在 dom 中使用 id 一次。相反,将一个类应用于应该触发点击的所有元素。

确保所有绑定都设置为文档就绪。

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

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

于 2013-07-18T12:33:55.940 回答
0

如果您使用事件委托而不是通常的点击事件,那会很好......(大部分时间)

$(document).on('click', '#element', function(){});
于 2013-07-18T12:17:54.997 回答