class="replace-2x"
ユーザーがRetinaディスプレイを搭載したモバイルデバイスを使用している場合、jQuery Mobileサイトの標準画像をRetina品質の画像に置き換えるJavascript置換機能を実行しています。たとえば、Retina デバイスでは、logo.png
は に置き換えられlogo@2x.png
ます。JS 関数は次のとおりです。
function highdpi_init() {
$(".replace-2x").each(function () {
var src = $(this).attr("src");
$(this).attr("src", src.replace(".png", "@2x.png").replace(".jpg", "@2x.jpg"));
});
}
$(".page").live('pageinit',function(event){
highdpi_init();
});
現在、置換機能が複数回実行されているという問題が発生しています。したがって、たとえば、ページが読み込まれると置き換えlogo.png
られlogo@2x.png
ますが、ページが読み込まれ続けると、画像タグが次のようになるように、img src で何度も置き換え.png
られ続けます。@2x.png
<img src="mobile/images/logo@2x@2x@2x@2x@2x@2x@2x@2x@2x@2x@2x.png" class="replace-2x" alt="logo" width="200">
これが単一の img 要素で複数回置き換えられないようにするにはどうすればよいですか? 同じページに複数の画像があるので、関数はすべての画像に適用する必要がありますが、それぞれ 1 回だけです。