私は、主にiOS Safariでターゲット設定されたウェブサイトをプログラミングしていますが、通常のデスクトップにも対応したいと考えています。ontouchstartのonmousownownへの転送コード
デスクトップ上にあるonmousedown onmouseupのイベントにボタンを反応させる必要があります。&ボタンはiOSのontouchstart ontouchendに反応するボタンです。
注:私はこれを行うことはできません(ただ、両方のイベントに登録):
<img id="button" onmousedown="this.src=''" onmouseup="this.src=''; doSomething();" ontouchstart="this.src=''" ontouchend="this.src=''"
これはiOSでは、デスクトップ上で動作する一方で、画像のsrcは変更されません、イベントの順序とは何かiOSの模倣物。
だかられるonmousedownにontouchstartでJavaScriptを転送しようとしていますが、私はエラーが出る "elesを[i]が定義されていない" 私はボタンを押すと、要素が&が正しいIDの持ちEXIST:
function enableDesktopGestures()
{
var eles = new Array(document.getElementById("topicIndex"),
document.getElementById("volumeToggle"),
document.getElementById("exitModuleBt"),
document.getElementById("prevBt"),
document.getElementById("nextBt"));
for (var i=0; i<eles.length; i++)
{
eles[i].addEventListener("mousedown", function() { eles[i].getAttribute("ontouchstart"); }, false);
eles[i].addEventListener("mouseup", function() { eles[i].getAttribute("ontouchend"); }, false);
}
}
// No error occurs with this but when I press the buttons nothing happens
function enableDesktopGestures()
{
var eles = new Array(document.getElementById("topicIndex"),
document.getElementById("volumeToggle"),
document.getElementById("exitModuleBt"),
document.getElementById("prevBt"),
document.getElementById("nextBt"));
for (var i=0; i<eles.length; i++)
{
var down = eles[i].getAttribute("ontouchstart");
var up = eles[i].getAttribute("ontouchend");
eles[i].onmousedown = function() { down; };
eles[i].onmouseup = function() { up; };
}
}
私が正しく理解している場合、ユーザーのブラウザがサファリかその他の場合は画像を2つのイベントに設定したいと思います。私はどのブラウザが何らかの検証をしていることを確認してからイベントを設定するべきだと思っています... –