Javascript onMouseClick не работает? - PullRequest
0 голосов
/ 22 февраля 2012

Вот код.В основном, когда я нажимаю на приложение, ничего не происходит (хотя он должен остановить акселерометр).Я считаю, что это проблема JS / DOM.

<!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>

Ответы [ 2 ]

1 голос
/ 22 февраля 2012

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

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

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

0 голосов
/ 22 февраля 2012

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

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

 document.addEventListener("click", onMouseClick, false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...