15

我正在使用phonegap并试图检测onClick,但是Android似乎完全忽略了它,下面是我正在尝试的:

<select name="func" onclick="StartButtons();" data-native-menu="true">

我已经尝试了 onClick 的几种变体,包括 javascript、jQuery 等,但是这些似乎都不起作用。

我注意到 onChange 有效,但这对我没有多大用处,因为我需要使用提示要求用户确认更改,如果不是,则什么也不做。但是,使用 onchange 仍然会更改下拉列表中的项目。

有人可以帮忙吗?

4

6 回答 6

11

我对 jQuery 也有同样的问题,Android 似乎忽略了 javascript 中的点击事件。最初,我的 jQuery 代码如下所示:

$("#element").click(function () { alert("message"); });

我不得不将其更改为:

$("#element").on("touchend", function () { alert("message"); });

不确定您是否使用 jQuery,但希望这会有所帮助。

于 2013-05-27T16:57:46.063 回答
4

使用 javascript 将单击事件侦听器添加到您的对象。首先给对象添加一个id:

    <select id="obj_id" name="func" data-native-menu="true">

然后调用 addEventListener() :

    document.getElementById("obj_id").addEventListener("click", StartButtons, false);

Phonegap 文档建议在“deviceready”事件中运行所有 javascript 代码。所以你的代码应该是这样的:

主.js:

    function StartButtons() { ... }

    function onDeviceReady() {
        ...
        document.getElementById("obj_id")
            .addEventListener("click", StartButtons, false);
        ...
    }

    function init() {
        document.addEventListener("deviceready", onDeviceReady, false);
    }

索引.html:

    ...
        <script type="text/javascript" charset="utf-8" src="main.js"></script>
    </head>
    <body onload="init();">
        ...
        <select id="obj_id" name="func" data-native-menu="true">
        ...
    </body>
于 2012-05-04T10:38:41.067 回答
4

https://ssl.gstatic.com 'unsafe-eval'; style-src 'self' 'unsafe-inline'; 媒体源 *">

从 index.html 中删除此代码

于 2016-08-30T11:30:42.010 回答
2

user1183085 的答案是正确的。Android 不会像 Web 应用程序那样识别点击事件,这是有道理的,因为移动应用程序在原生时不是 Web 的,所以这就是为什么要制作 phonegap 但因为它可以与 jquery 一起使用,而不是直接与原生 java android 库一起使用。我这样写我的代码:

web 按钮或元素 onclick 处理所有 web 界面,特殊按钮或元素 ontouchend 处理移动界面。这是我的代码的一部分:

//this handles the login button events for the mobile touch of the user
$("button.login-button").on("touchend", function () {alert('hello touch ! =o' )});

//this handles the login button events for web clicks
$("button.login-button").on("click", function () {alert('hello click ! =o' )});

感谢用户user1183085,它永远解决了我的生活=()

于 2016-12-14T15:16:22.557 回答
1

当心,在 Cordova 3.4 中的输入上绑定 onclick 不起作用。但它适用于 div 元素。考虑到,输入元素是表单元素的一部分,就像选择元素一样,这可能是你的问题。

于 2014-05-23T16:01:40.180 回答
0

您是否尝试过将方法设置为“method”而不是“method();”?所以也许你可以试试你的线路:

<select name="func" onclick="StartButtons" data-native-menu="true">

然后希望你的方法会被调用。

于 2012-05-03T16:23:42.463 回答