2012-02-22 37 views
0

这是代码。基本上,当我点击应用程序没有任何反应(但它应该停止加速计)。这是我认为的JS/DOM问题。JavaScript onMouseClick不起作用?

<!DOCTYPE html> 

UNH BSApp

<script type="text/javascript" charset="utf-8" src="phonegap.js"></script> 
<script type="text/javascript" charset="utf-8"> 

// The watch id references the current `watchAcceleration` 
var watchID = null; 

// Wait for PhoneGap to load 
// 
document.addEventListener("deviceready", onDeviceReady, false); 

// PhoneGap is ready 
// 
function onDeviceReady() { 
    startWatch(); 
} 

function onMouseClick() { 
a stopWatch(); 
} 

// Start watching the acceleration 
// 
function startWatch() { 

    // Update acceleration every 0.1 seconds 
    var options = { frequency: 10 }; 

    watchID = navigator.accelerometer.watchAcceleration(onSuccess, onError, options); 
} 

// Stop watching the acceleration 
// 
function stopWatch() { 
    if (watchID) { 
     navigator.accelerometer.clearWatch(watchID); 
     watchID = null; 
    } 
} 

// onSuccess: Get a snapshot of the current acceleration 
// 
function onSuccess(acceleration) { 
    var element = document.getElementById('accelerometer'); 
    element.innerHTML = 'Acceleration X: ' + acceleration.x + '<br />' + 
         'Acceleration Y: ' + acceleration.y + '<br />' + 
         'Acceleration Z: ' + acceleration.z + '<br />' + 
         'Timestamp: '  + acceleration.timestamp + '<br />'; 
} 

// onError: Failed to get the acceleration 
// 
function onError() { 
    alert('onError!'); 
} 

</script> 
<style> 
    #start { 
     display:block; 
     border:solid; 
    } 
</style> 


</head> 
    <body> 
    <div id="accelerometer">Waiting for accelerometer...</div> 
    <div id="start">Start</div> 
    </body> 
</html> 
+0

你还没有注册该事件点击事件。你刚刚创建了一个处理程序。您还需要注册该事件。 – bhups 2012-02-22 18:03:46

+0

你在哪里注册回调?此外,该事件不是onmouseclick。这是onmousedown,或onmouseup,或onclick。 :) – Akshay 2012-02-22 18:04:13

回答

1

onMouseClick()未绑定到一个事件。既然你在使用PhoneGap,我假设你想绑定到touchstart或touchend。

document.addEventListener("touchend", onMouseClick, false); 

您可能想要在文档完全加载时添加事件侦听器。

+0

Touchend不工作:/我在OnDeviceReady中添加监听器 – antonpug 2012-02-22 18:16:05

+0

在此上传一些传单一个是我没有更新过的代码,但您可能必须先调用preventDefault()。这里有一些额外的见解:http://code.google.com/p/android/issues/detail?id = 4549 – JustinW 2012-02-22 19:39:40

0

你的方法OnMouseClick从不打电话。您必须为某个事件(一个div或整个文档)分配一个事件侦听器,并且如果该事件触发,那么您的OnMouseClick将被调用。

是这样的:

document.addEventListener("click", onMouseClick, false); 
+0

点击也不工作 - 基本上我在OnDeviceReady中添加了一个设备监听器,用于使用stopWatch()响应器的单击事件 – antonpug 2012-02-22 18:16:42