2012-02-22 53 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