2015-07-19 1 views
0

J'utilise ce script pour une galerie d'images simple. Sur la dernière ligne, j'essaie de changer la bordure de l'image dans 'ceci' mais le style ne change pas pour une raison quelconque. Qu'est ce que j'ai mal fait?Modifier le style d'image enfant

$('.gallery-image').on('click',function(){ 
    var bigCurrent = $('.hero-image').attr('src'); //the current large image src 
    var bigThumb = $('.hero-image').attr('data-smSrc'); //the thumb version src of the current large image 
    var thumbSm = $(this).attr('src'); //the currently being clicked on thumb's src 
    var thumbLgSrc = $(this).attr('data-lgSrc'); //the large version src of the currently being clicked on thumb 

    $('.hero-image').attr('src', thumbLgSrc); 
    $('img', this).css('border','2px solid #fff'); 

}); 

MISE À JOUR: Cela fonctionne et suit les corrections apportées dans certains commentaires ci-dessous

$('.gallery-image').on('click',function(){ 
    var bigCurrent = $('.hero-image').attr('src'); //the current large image src 
    var bigThumb = $('.hero-image').attr('data-smSrc'); //the thumb version src of the current large image 
    var thumbSm = $('img', this).attr('src'); //the currently being clicked on thumb's src 
    var thumbLgSrc = $(this).attr('data-lgSrc'); //the large version src of the currently being clicked on thumb 

    $('.hero-image').attr('src', thumbLgSrc); 

    $('.selected').removeClass('selected'); 

    $('img', this).addClass('selected'); 
}); 
+0

pouvez-vous ajouter un violon ou un lien vers le site escroc –

+0

Des erreurs dans la console? Ou est-ce que ça ne marche pas comme prévu? – lockedz

+0

Désolé, le lien réel est: http://penumbralux.com/project/marisol/ – Eckstein

Répondre

0

Sans voir cet échec, les chances sont, vous essayez de sélectionner la mauvaise chose.

Vous avez $(this).attr('src'), ce qui implique que this est le nœud d'image lui-même, car cet attribut est spécifique à img. Pourtant, vous essayez de sélectionner un img dans le contexte this, et puisque img ne peut pas avoir d'enfants, il est peu probable qu'il y ait img nœuds à trouver.

Essayez à la place de simplement $(this).css(...) à la place.

+0

Merci d'avoir répondu. '$ (this)' est la div qui contient l'image, donc j'essaie de sélectionner sa balise img enfant pour appliquer les styles aussi. – Eckstein

+0

Vous aviez raison, je ne sélectionnais pas la bonne chose. Il devait être $ (ceci, 'img'), juste inversé l'ordre. – Eckstein

+0

Vous ne devriez pas avoir un attribut de 'src' sur un div. Ce n'est pas un attribut pris en charge. HTML5 prend en charge les attributs data- * pour cette raison. Si vous voulez stocker le 'src' de l'image en dehors du noeud' img', vous * devriez * utiliser un attribut data- * à la place. –