私がやりたいことは、特定のクラス名を持つすべての画像を見つけて、その上にオーバーレイ画像を配置することです。これまでjQueryの1.2.6での私のスクリプト:画像オーバーレイ(jQuery)を追加する際の問題
jQuery.noConflict();
jQuery(document).ready(function($) {
var module = $(".module-contactus div div div");
module.find("img.let").each(function() {
var iWidth = $(this).width();
var iHeight = $(this).height();
var letimg = $('<img src="/LET.png" style="position: absolute; top: 50%; left: 50%; margin-top: -' + Math.ceil(iHeight/2) + 'px; margin-left: -' + Math.ceil(iWidth/2) + 'px;" />');
var wrapper = $('<span style="position: relative; display: inline-block;"></span>');
$(this).wrap(wrapper);
letimg.appendTo(wrapper);
});
});
letimg
は(Firebugのに応じて)文書に追加されていません。 span
要素は元のイメージを正常にラップします。また、$(this)
をappendTo
関数に渡しても、それは元のイメージの中に追加されています。
編集:以下はマークアップです。 (余分なdiv要素は、Joomlaのの結果である。)
<div class="module-contactus">
<div><div><div>
<img src="/contact1.jpg" />
<img class="let" src="/contact2.jpg" />
</div></div></div>
</div>
スクリプトが第2の画像は置き換えられ実行された後:
<span style="position: relative; display: inline-block;">
<img class="let" src="/contact2.jpg" />
</span>
しかし、それはこのように終わる必要があります。
<span style="position: relative; display: inline-block;">
<img class="let" src="/contact2.jpg" />
<img src="/LET.png" style="..." />
</span>
マークアップを確認する必要があります。 –