我正在使用phonegap,我正在尝试检测onClick,但是Android似乎完全忽略了它,下面是我正在尝试的内容:
<select name="func" onclick="StartButtons();" data-native-menu="true">
我已尝试过onClick的几种变体,包括javascript,jQuery等。但是这些似乎都不起作用。
我注意到onChange有效,但这对我没有多大用处,因为我需要使用一个提示,要求用户确认更改,如果不是则不做任何操作。但是,使用onchange仍会更改下拉列表中的项目。
有人可以帮忙吗?
答案 0 :(得分:11)
我遇到了与jQuery相同的问题,Android似乎忽略了javascript中的click事件。最初,我的jQuery代码如下所示:
$("#element").click(function () { alert("message"); });
我不得不将其更改为:
$("#element").on("touchend", function () { alert("message"); });
不确定你是否正在使用jQuery,但希望这会有所帮助。
答案 1 :(得分:4)
使用javascript将click事件监听器添加到您的对象。首先向对象添加一个id:
<select id="obj_id" name="func" data-native-menu="true">
然后调用addEventListener():
document.getElementById("obj_id").addEventListener("click", StartButtons, false);
Phonegap文档建议您在“deviceready”事件中运行所有javascript代码。所以你的代码应该是这样的:
main.js:
function StartButtons() { ... }
function onDeviceReady() {
...
document.getElementById("obj_id")
.addEventListener("click", StartButtons, false);
...
}
function init() {
document.addEventListener("deviceready", onDeviceReady, false);
}
的index.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>
答案 2 :(得分:2)
user1183085的回答是正确的。 Android不会像网络应用那样识别点击事件,因为移动应用在本机时不是网络,因此这就是为什么设置了phonegap,但因为它与jquery一起工作,而不是直接使用本机java的android库。我把代码放在这里:
点击web按钮或元素以处理所有Web界面,以及用于处理移动界面的特殊按钮或元素。这是我的代码的一部分:
//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,它永远解决了我的生活=()
答案 3 :(得分:1)
注意,绑定在Cordova 3.4中的输入上的onclick,不起作用。但它对div元素很有用。考虑到,输入元素是表单元素的一部分,就像select元素一样,它可能是你的问题。
答案 4 :(得分:1)
https://ssl.gstatic.com&#39; unsafe-eval&#39 ;; style-src&#39; self&#39; &#39;不安全直插&#39 ;; media-src *&#34;&gt;
从index.html
中删除此代码答案 5 :(得分:0)
您是否尝试将方法设置为“方法”而不是“方法();”?所以也许你可以试试你的行:
<select name="func" onclick="StartButtons" data-native-menu="true">
然后希望你的方法会被调用。