2017-08-23 5 views
0

私は、PCでうまく動作するjavascript機能を持っていますが、モバイルに読み込まれたときには機能しません。私はモバイルがタップして別の方法でクリックするためだと思いますが、モバイルで動作するように次の機能を変更するにはどうすればよいですか?ありがとうございました。Javascriptのクリックがモバイルで動作しない

(function() { 
    var a = { 48: "0", 49: "1", 50: "2", 51: "3", 52: "4", 53: "5", 54: "6", 55: "7", 56: "8", 57: "9", 96: "0", 97: "1", 98: "2", 99: "3", 100: "4", 101: "5", 102: "6", 103: "7", 104: "8", 105: "9", 106: "x", 107: "+", 109: "-", 110: ".", 111: "\u00f7", 8: "backspace", 13: "=", 46: "c", 67: "c" }, b = function (b) { 
     if (b.keyCode in a) { 
      var c = document.getElementById("button-" + a[b.keyCode]); 
      c.className.match(/(\s|^)active(\s|$)/) || (c.className += " active"); 
      setTimeout(function() { 
       c.className.match(/(\s|^)active(\s|$)/) && (c.className = c.className.replace(/(\s|^)active(\s|$)/, " ")) 
      }, 100); 
      document.createEvent ? (b = document.createEvent("HTMLEvents"), b.initEvent("click", !0, !0), c.dispatchEvent(b)) : (b = document.createEventObject(), c.fireEvent("onclick", b)) 
     } 
    }; 
    document.addEventListener ? document.addEventListener("keyup", b, !1) : document.attachEvent && document.attachEvent("keyup", b) 
})(); 
+0

attachEvent? IE6をサポートしていますか? – epascarello

+0

私はこの機能を書いていないので、実際にはわかりません。私はjavascriptにはあまりよくありません。私はiPhoneとAndroidのブラウザで試してみたところ、機能は動作していません。 – Julia

+0

元の著者は "良い"ではない、IE <9のハックは 'document.attachEvent(" onkeyup "、b)'でなければならない。また、イベントの作成は少し古いです。https://developer.mozilla.org/en-US/docs/Web/API/Document/createEvent – Teemu

答えて

0

以下のリンクからわかるように、initEventまたはfireEvent関数呼び出しにtouchstartを追加します。

https://stackoverflow.com/a/22015946/3042383

+0

Yah、この回答を見ましたが、わかりませんその答えを使って自分の関数を変更する方法。 – Julia

+0

これはPCでは動作しませんが、clickとonclickをtouchstartで置き換え、それがモバイルで動作するかどうか確認してください。 – lancew

+0

私は試しても動作しません。 – Julia

関連する問題