Javascript cordova/phonegap onclick不';行不通
我尝试创建一个按钮,在单击事件后启动警报。诸如此类:Javascript cordova/phonegap onclick不';行不通,javascript,android,cordova,onclick,listener,Javascript,Android,Cordova,Onclick,Listener,我尝试创建一个按钮,在单击事件后启动警报。诸如此类: <body> <div class="app"> <h1>Apache Cordova</h1> <div id="deviceready" class="blink"> <p class="event listening">Connecting to Device</p>
<body>
<div class="app">
<h1>Apache Cordova</h1>
<div id="deviceready" class="blink">
<p class="event listening">Connecting to Device</p>
<p class="event received">Device is Ready</p>
</div>
<button onclick="alert('salut')" id="boutonAlerte">Alerte</button>
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script> </body>
function onAlertClick() {
alert("ceci est une alerte");
}
alert("test2");
var bA = document.getElementById("boutonAlerte");
bA.addEventListener("onclick", onAlertClick());
但这是同一件事
有什么想法吗 onclick不会在cordova应用程序上启动,因为用户不会“点击”,而是“点击”。您可以使用像样的移动框架,如Ionic,并使用
ng click
,它会自动为您解决问题,因为它包括ngTouch
如果您不喜欢使用像angular这样的大型框架,可以使用Zepto.js
,并使用$(.element”).on('tap',callback)
以侦听点击事件。或$(.element”)。在('tap click',callback')
以侦听点击和单击事件
ChromeDev工具具有良好的移动仿真功能,可以触发tap事件。如果您想在Chrome中调试应用程序,这可能会很有帮助。定义一个clickhandler,以后可以使用:
var clickHandler = ('ontouchstart' in document.documentElement ? "touchstart" : "click");
$("a").bind(clickHandler, function(e) {
alert("clicked or tapped. This button used: " + clickHandler);
});
这将触发点击非触摸设备和触摸设备上的touchstart
说到这里,我强烈建议使用快速点击,而使用常规点击事件。使用上述解决方案,当您在链接上滑动以滚动页面时,您将触发“touchstart”,例如,这并不理想。尝试添加jQuery click事件,该事件在我的cordova应用程序中运行良好
<script type="text/javascript" src="https://code.jquery.com/jquery-1.12.3.js"></script>
<script type="text/javascript">
$("#boutonAlerte").click(function(){
alert("ceci est une alerte");
});
</script>
$(“#boutonAlerte”)。单击(函数(){
警报(“ceci est une警报”);
});
这里是JSFiddle链接
您可以尝试执行以下操作:
$("#boutonAlerte").on('click', function(){
alert("Clicked!");
});
然后从按钮标记中删除onclick
,并确保在HTMLO课程中包含jQuery库
如果只想使用JavaScript,则应执行以下操作:
<button onclick="myFunction();" id="boutonAlerte">Alerte</button>
<script>
function myFunction(){
alert("clicked!");
}
</script>
警报
函数myFunction(){
警报(“单击!”);
}
解决方案
//用于更改t2的内容的函数
function modifyText() {
var t2 = document.getElementById("t2");
if (t2.firstChild.nodeValue == "three") {
t2.firstChild.nodeValue = "two";
} else {
t2.firstChild.nodeValue = "three";
}
}
//将事件侦听器添加到表
var el = document.getElementById("outside");
el.addEventListener("click", modifyText, false);
下面是一个jQuery示例
html
<a href="#" class="start-button">EXECUTE</a>
确保调用event.preventDefault();因此,它不会尝试转到html标记中的href。在这种情况下,只需重新加载cordova应用程序。实际上,解决方案非常简单。
您希望单击事件处理的所有元素都应该具有CSS规则“cursor:pointer
您可以在此处找到一个工作示例:
您是否尝试过否,因为我不使用JQuerry,但为什么不呢?我认为JQuerry可能是一个很好的解决方案,但touchend和JQuerry不起作用。可能是因为jquery版本?谢谢你的回答。今晚我要试试。是jQuery吗?我已经用最新的jQuery src更新了jQuery src,所以请看一看,当我使用$(“#boutonAlerte”)。on(“touchend”,function(){alert(“clicked”);}时,它与上一个jq版本不兼容代码>谢谢,它可以在网站上运行,我必须试用我的Cordova应用程序?我尝试过用我在这里共享的相同代码制作简单的演示应用程序,它可以与jQuery Click事件配合使用,因此尝试创建演示应用程序,并让我知道这是否有效。很好,如果这是适合您的问题和要求的答案,那么您可以选择这作为正确答案,谢谢
$(".start-button").click(function (e) { //note that 'onclick="HandleExec();return false;" doesnt work
e.preventDefault();
// here you can handle the click code you wanted
});