Ce que je veux faire est de trouver toutes les images avec un nom de classe particulier, et de placer une image de recouvrement sur elles. Mon script jusqu'à présent dans jQuery 1.2.6:Problème lors de l'ajout d'une superposition d'image (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);
});
});
Le letimg
n'est pas ajouté au document (selon Firebug). L'élément span
encapsule l'image originale avec succès. En outre, il fonctionne un peu si je passe $(this)
dans la fonction appendTo
, mais alors il est ajouté à l'intérieur de l'image originale!
EDIT: le balisage est ci-dessous. (Les divs supplémentaires sont une conséquence de Joomla.)
<div class="module-contactus">
<div><div><div>
<img src="/contact1.jpg" />
<img class="let" src="/contact2.jpg" />
</div></div></div>
</div>
Après le script est exécuté la deuxième image est remplacée par:
<span style="position: relative; display: inline-block;">
<img class="let" src="/contact2.jpg" />
</span>
Cependant, il devrait finir comme ça:
<span style="position: relative; display: inline-block;">
<img class="let" src="/contact2.jpg" />
<img src="/LET.png" style="..." />
</span>
Pour voir ce qui se passe, nous aurons besoin de voir le balisage. –