2012-02-22 10 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を使用しているので、私はあなたがtouchstartまたはtouchendにバインドすると仮定しています。

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

ドキュメントが完全に読み込まれると、イベントリスナーを追加することをお勧めします。

+0

Touchendが動作していません:/ OnDeviceReadyでリスナを追加しています – antonpug

+0

チラシを少し1つは私があなたの更新されたコードを持っていないが、あなたはpreventDefault()を最初に呼び出さなければならないかもしれない。さらに詳しい情報はhttp://code.google.com/p/android/issues/detail?id=4549 – JustinW

0

呼び出すことはありませんOnMouseClickあなたの方法。イベントリスナーを何か(div、またはドキュメント全体)に割り当てる必要があります。イベントがトリガーの場合は、OnMouseClickが呼び出されます。

ような何か:

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

クリックは機能していません - 基本的に、stopWatch()レスポンダでclickイベントのOnDeviceReadyにデバイスリスナを追加しました – antonpug

関連する問題