我正在使用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>
答案 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');
}
另一件事,您应该将touchstart
或touchend
用于移动应用程序,而不是click
事件,因为它在等待查看是否为双击时有300毫秒的延迟。
在这种情况下,touchEnd
可能会更好。
document.getElementById("bb1").addEventListener('touchend', clickHandler);