4

私は、より高いバージョンのデバイスで完全に動作するプロジェクトに取り組んでいます。4.1.2 バージョンで確認しました。

問題は、Android バージョン 2.2.1 および 2.3.5 のデバイスでは機能しないことです。

機能を追加した 6 つのイメージがあります。2 つの画像の機能は、id 値を使用して別の HTML ページを呼び出すことです。他の 4 つの画像の機能も同じですが、画像はデータベースの値に基づいて表示されます。

2 つの画像の機能は、id 値を使用して別の HTML ページを呼び出すことです。

これは私がコーディングした方法です..

<div id="header " class="header ">
     <div id="header_title" class="header_title"> </div>
     <div id="abc" class="abc"><img src="img/abc.png" onClick="abc()"/></div>
-----so -on

abc関数を次のように宣言しました

function abc(){
   window.location.href="index.html";
}

他の 4 つの画像の機能も同じですが、画像はデータベースの値に基づいて表示されます。

if(value_in_db==0) {
  document.getElementById("xyz").innerHTML = '<img src="img/inactive.png" />'
} else {
  document.getElementById("xyz").innerHTML = '<img src="img/active.png" onclick="xyz()"/> '
}

xyz 関数を次のように宣言しました。

function xyz(){
   window.location.href="basic.html";
}

直面している問題:

onclick 機能は、Android バージョン 2.2.1 および 2.3.5 で時々機能します。突然クリックしようとすると、機能が呼び出されます。このエラーをほぼ2日間修正しようとしました。

CSS position:fixed で同様の問題に直面していました。これは、Android の下位バージョンではサポートされていませんでした。ここで解決策が提案されました。

このaddEventListener 関数を試してみましたが、うまくいきませんでした。

この問題の解決策が得られることを願っています。

これを修正して私を導いてください!

EDIT :1 touchevent と deviceready

document.addEventListener("deviceready", onDeviceReady, false);
document.addEventListener( "touchstart", function(e){ onStart(e); }, false );
function onStart ( touchEvent ) 
{
   if( navigator.userAgent.match(/Android/i) ) 
   {
        touchEvent.preventDefault();
   }
}

これは上位バージョンでは機能しますが、下位バージョンでは機能しません。2に言及するのは根拠がないことを私は知っていますdocument.addEventListener..それはより高いバージョンで機能したので.私はそれを続けました.

4

3 に答える 3

1

ページ上のすべてのイベントを使用することはできません。

付けるならマウスダウン、マウスアップ、クリック、タッチスタートなど組み合わせはたくさんあります。
私は提案します: - デバイス/ブラウザ検出器を実装します - 次に、モバイルタッチとデスクトップクリックイベントにアタッチします

  • 組み合わせて使用​​できますが、すべてのクリックと 1 つのタッチ バリアントのみを使用するか、すべてのタッチと 1 つの従来のデスクトップ イベントを使用します。

最良の組み合わせ: onClick と 1 回の mousedown または mouseup のみ。機能に問題がある場合は、何らかの touch イベントを実装します。

次のような単純なコードを配置することもできます。

<div onClick="CALL();" ontouchstart="CALL();" >

この回答で私のブラウザ/デバイス検出スクリプトを見つけることができます: 同様の質問と回答

于 2015-01-16T14:27:21.373 に答える