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
});