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

+0

Где вы зарегистрировали обратные вызовы? Также событие не onmouseclick. Это onmousedown или, onmouseup, или onclick. :) – Akshay

ответ

1

OnMouseClick() не связан с событием. Поскольку вы используете PhoneGap, я предполагаю, что вы захотите привязываться к сенсорному или косвенному.

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

Возможно, вы захотите добавить слушателей событий, как только документ будет полностью загружен.

+0

Touchend не работает:/Я добавляю слушателя в OnDeviceReady – antonpug

+0

Принимая немного флаера на этом один, поскольку у меня нет вашего обновленного кода, но вам, возможно, придется сначала вызвать preventDefault(). Вот некоторые дополнительные сведения: http://code.google.com/p/android/issues/detail?id=4549 – JustinW

0

ваш метод OnMouseClick никогда не называют. Вы должны назначить прослушиватель событий чему-либо (div или весь документ), и если событие запускается, то ваш OnMouseClick будет вызывать.

Что-то вроде:

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

Щелчок не работает - в основном я добавил слушателя устройства в OnDeviceReady для события click с stopWatch() responder – antonpug

Смежные вопросы