私はAndroidアプリを作成しており、2つのボタンがあります。 1スタートと1ストップ。開始ボタンをクリックすると停止ボタンが表示され、停止ボタンが表示されて非表示になります。タッチスタートイベントが当初隠しボタンで動作していません
私はSTOPボタンでタッチスタートイベントを取得しようとしています(開始ボタンに追加することは必須ですが、必須ではありません)。しかし、私の下のコードは何らかの理由で正しく動作していません。いくつか私は私が逃したことを知らせてください。
背景: - 私のボタン を隠すためにjqueryのを使用して - 背景画像とボタンが
JAVASCRIPT:
var b=document.getElementById('STOP'),start=0;
//Check for touchstart
if('ontouchstart' in document.documentElement)
{
document.getElementById("notouchstart").style.display = "none";
}
//Add a listener that fires at the beginning of each interaction
[b].forEach(function(el){el.addEventListener('touchstart',interact);});
//Add the event handlers for each button
b.addEventListener('touchstart',highlight);
//Functions Store the time when the user initiated an action
function interact(e)
{
start = new Date();
}
//Highlight what the user selected and calculate how long it took the action to occur
function highlight(e)
{
e.preventDefault();
e.currentTarget.className="active";
if(start)
{
alert("test")
}
start = null;
}
HTMLボタン:
<INPUT TYPE="button" style="background:url(images/Start_Btn.png); background-color:transparent; width:150px; height:186px; border:none; cursor:pointer;" id="START" onClick="startBTN();">
<INPUT TYPE="button" style="background:url(images/Stop_Btn.png); background-color:transparent; width:150px; height:186px; border:none; cursor:pointer;" id="STOP">
ありません、それは私の意図でtouchstartを呼び出すべきではありません。
は、機能のonloadコールに同じイベントを2度。私はこのすべてに非常に新しいですし、コーディングで少し失われています。私は単にクリックイベントを検出し、javascript関数を実行するので、単にtouchstartを検出したいと考えています。上記の例のように、単純なjavascriptアラートにすることができます。これは、私の上記のコードに無意味なコードがたくさんあることを意味しますか?これを指摘するのを手伝ってください。これは、2つの別々のボタンが同時に表示されている場合に機能します。 –
私は完全に理解しています。 JavaScriptは変な獣です。あなたの 'forEach'ループに特に興味を持ってみましょう。このループは1つの要素でのみ実行されているため、配列に「START」および「STOP」ボタンを追加し、その配列をループし、それぞれにイベントリスナーを追加することをお勧めします。私の答えを更新させてください。 –
これは、上記のコードを実装しただけですが、これはイベント関数(alert( "test");)に到達することはありません。また、エラーが発生し、a)falseの後に追加する必要がありました;} –