Raphael.js を使用して SVG マップを処理しています。すべてのデスクトップ ブラウザーで優れた機能を発揮します。マップ上の特定の領域がクリックされたときにいくつかのことを実行するクリック機能があります。クリックされたオブジェクトの (this.id) を取得し、いくつかの結果を吐き出すことに依存しています。
問題は、デスクトップ ブラウザの Safari、Opera、IE9、および Chrome で動作することです。モバイル Android (4.0.3) ブラウザで同じものを開こうとしましたが、(this.id) の値が同じではないため、クリックした領域は結果を取得する領域ではありません。デスクトップ上のオブジェクトの this.id は、モバイル ブラウザー上の同じオブジェクトの this.id と等しくありません。
アラートを使用して値を確認しました。何を与える?これを回避したり、クリックされたアイテムの ID をより確実な方法で見つけたりするにはどうすればよいですか?
重要なコードの一部を次に示します。
drawnl[i].click(function(){//click function
if(dcount == mcount){
idx = (highestid-1-this.id); // this takes the total number of markets generated up to this point, subtracts the # of markets for this current map
}else if(gens > 2){
idx = (mcount-1)-((dcount + (gens-2))-(this.id)); // this takes the total number of markets generated up to this point, subtracts the # of markets for this current
}else{
idx = mcount-1-(dcount-this.id);
}
}
this.id を取得する場合を除いて、他のすべての値が一貫していることを確認しました。Raphael.js ( http://raphaeljs.com/reference.html#Element.click )の組み込みハンドラーを使用しています。