Terug naar de voorpaginaTBForum nu ook op je mobiel!
Klik hier voor meer info en gratis link...

Home Nieuw Vraag & Aanbod Forums Artikelen Bedrijvengids Zoeken

   Robert B., Particulier
7 feb 12:08 
Ik heb een unsorted list die als volgt is opgemaakt:




<li id="een" class="test">
<a class="thumb" href="img/punk.jpg" title="Title #0">

<div style="background: url(img/thumb_1.jpg) no-repeat;">
<div class="gradient_overlay"></div><span class="titel">Gran Via</span>
</div>

</a>
</li>



Nu heb ik het al voor elkaar gekregen dat als 1 van de list items een div bevat "gradient_overlay_hidden" dat deze na een click veranderd word naar "gradient_overlay". Ik krijg het alleen niet voor elkaar om op dezelfde click ook de class van de <span> te veranderen.

De jquery code:


$(function() {

$('ul.thumbs li').click(function(){

$('li.test a div').find('.gradient_overlay_hidden').removeClass().addClass("gradient_overlay");// Deze werkt
$('li.test a div').find('.titel').removeClass().addClass("titel-inactief"); // Deze niet

})

});


Iemand die me hierbij een beetje in de juiste richting kan sturen?

Robert

     Aangepast op 07-02-2010 12:08 door Robert B.
   Verlangen, Alleznet Media
7 feb 12:37 
$('li.test a div').find('.titel')

Weet je zeker dat dit wel klopt?

   Robert B., Particulier
7 feb 12:44 
Nee, ik denk ook dat het daar in zit...dat hij class="titel" gewoon niet kan vinden.

Heb dit ook geprobeerd, maar werkt ook niet:


$('li.test a div span').find('.titel')

     Aangepast op 07-02-2010 12:45 door Robert B.
   Richard O., Particulier
7 feb 13:12 
Probleem is dat je alles selecteert ongeacht waarvandaan de click wordt aangeroepen. Met $(this) begin je in de huidige context.

Dit werkt bij mij:
$(this).find('a div .gradient_overlay_hidden').removeClass().addClass("gradient_overlay");
$(this).find('a div .titel').removeClass().addClass("titel-inactief");


Wel vreemd aangezien jouw code ALLE matchende classes zou moeten veranderen terwijl het klinkt alsof ie er bij jou geen doet.

     Aangepast op 07-02-2010 13:12 door Richard O.
   Robert B., Particulier
7 feb 13:31 
-snip-

Ik moest '.titel_actief' hebben ipv '.titel'


$('li.teste a div').find('.titel_actief').removeClass().addClass("titel-inactief");


Toch bedankt voor de reacties, sorry voor de tijdverspilling ^^

Robert (Was zich al een uurtje of 2 aan het opvreten)

     Aangepast op 07-02-2010 14:54 door moderator: taalgebruik
   Richard O., Particulier
7 feb 13:47 
Blijft feit dat je alle li's matched... ?

   Niels O, Lutrasoft
8 feb 20:17 
Waar dan? Hij selecteerd alle LI's met de klasse teste.

BTW: dit is het zelfde
$('li.teste a div').find('.titel_actief')
als
$('li.teste a div .titel_actief')
of
$('li.teste .titel_actief')
en nog korter
$(".titel_actief")

     Aangepast op 08-02-2010 20:19 door Niels O
   Richard O., Particulier
8 feb 20:19 
Volgens mij is dat niet wat TS wil, hij wil volgens mij alle .titel_actief hebben binnen het aangeklikte element en niet alle .titel_actief.

     Aangepast op 08-02-2010 20:19 door Richard O.
   M. van de Rijt, Particulier
9 feb 10:30 
Je bent zoiezo een ; vergeten aan het eind van je click function:
Deze is getest en werkt:


$(function() {

$('ul.thumbs li a').click( function(){
$('ul.thumbs li a div').find('.gradient_overlay_hidden').removeClass().addClass("gradient_overlay");
$('ul.thumbs li a div').find('.titel').removeClass().addClass("titel-inactief");
});

});



<li id="een" class="test">
<a class="thumb" href="img/punk.jpg" title="Title #0" onclick="return false;">
<div style="background: url(img/thumb_1.jpg) no-repeat;">
<div class="gradient_overlay_hidden"></div>
<span class="titel">Gran Via</span>
</div>
</a>
</li>


Succes

     Aangepast op 09-02-2010 10:40 door M. van de Rijt



 
© Copyright TargetMedia 2001-2010 | Mobile | Premium SMS | Micropayments | Muziek downloaden | Ringtones Bekijk bezoekers statistieken RSS feed