带有phonegap应用程序点击事件的Windows手机未触发

时间:2013-12-30 08:03:16

标签: windows-phone-7 cordova smartphone

我正在使用phonegap为Windows手机开发应用程序。当我单击按钮时,单击事件似乎没有触发,我无法捕获事件。

可能是什么原因。请帮忙。

示例代码

  <script type="text/javascript" charset="utf-8" src="phonegap-1.1.0.js"></script>
  <script type="text/javascript">
  function alertD() {
  }
  function init() {
  document.addEventListener("deviceready",onDeviceReady,false);
  $('#bb1').bind('click',function() { 
  navigator.notification.alert('clicked',alertD,'Exit','ok');
  });
  }
  // once the device ready event fires, you can safely do your thing! -jm
  function onDeviceReady(){
  document.getElementById("welcomeMsg").innerHTML += "PhoneGap is ready!";
  }
  </script>
  </head>
  <body onLoad="init();">
  <h1> Page </h1>
  <input type="button"  name="b1" id="bb1" value="event" />
  <h1>Hello PhoneGap</h1>
  <div id="welcomeMsg"></div>
  </body>

1 个答案:

答案 0 :(得分:2)

尝试将绑定移动到deviceReady中,还需要让jquery使用$().bind,否则需要使用本机addEventListener

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

function onDeviceReady(){
    document.getElementById("welcomeMsg").innerHTML += "PhoneGap is ready!";

    // add the clickHandler function to the click event on #bb1
    document.getElementById("bb1").addEventListener('click', clickHandler);
}

function clickHandler() {
    navigator.notification.alert('clicked',alertD,'Exit','ok');
}

另一件事,您应该将touchstarttouchend用于移动应用程序,而不是click事件,因为它在等待查看是否为双击时有300毫秒的延迟。

在这种情况下,touchEnd可能会更好。

    document.getElementById("bb1").addEventListener('touchend', clickHandler);