Wat raden jullie mij aan te doen i.p.v. hasClass()?
Ik wil jquery laten kijken of een bepaald element een bepaalde class heeft en vervolgens deze laten verwijderen.
Wij weten niet wat je wilt bereiken maar ik gok dat je misschien dit zoekt:
[code]
$('ul').click(function() {
if(mouse == true) { // geen idee wat dit is?
$("li").removeClass('open'); // alle listitems zijn nu zonder de class 'open'
}
});
Je hebt een element waarin zich 5 elementen in bevinden.
<div class="main">
<li>klik hier voor element 1
<div class="element1 hide"></div>
</li>
<li>klik hier voor element 2
<div class="element2 hide"></div>
</li>
<li>klik hier voor element 3
<div class="element3 hide"></div>
</li>
<li>klik hier voor element 4
<div class="element4 hide"></div>
</li>
<li>klik hier voor element 5
<div class="element5 hide"></div>
</li>
</div>
Alle div elementen krijgen de class hide {display:none;} mee.
Als ik op klik hier voor element 1 klik moet de hide class van element 1 verwijderd worden.
Klik ik nu nog eens op klik hier voor element 1 dan moet hij weer de class hide meekrijgen.
Dit is nog te maken met bijvoorbeeld toggleClass('hide').
Nu kom ik op het punt waar ik op vast loop:
Ik klik op"klik hier voor element 1" dan haalt hij de class hide eraf, als ik dan vervolgens op een ander element klik 2,3,4, of vijf dan moet hij ook de class hide weer krijgen. Kort gezegd er mag steeds maar een element zichtbaar zijn.
in plaats van class="element?" moet je ze gewoon alle vijf class="element" maken. Wil je ze een eigen nummer geven gebruik dan het id attribuut (id="1").
Zoals ik deze week al eerder heb aangegeven in een ander topic:
-toggle is niet geschikt als je controlle wilt hebben over zichtbaar of onzichtbaar maken.
En omdat je in deze situatie alle div's onzichtbaar wilt maken behalve één moet je zeker weten dat je ze onzichtbaar maakt.
Ik doe het zelf altijd gewoon met jQuery's show() en hide() in plaats van met addClass() en removeClass().
Frank kan je de code ook gewoon hier plaatsen? Dan kunnen anderen zien waarover het gaat zonder op een externe link te hoeven klikken.
Je gebruikt bijvoorbeeld:
[code lang="js"]
$(li div).click(function(e){
e.preventDefault();
})
[/code]
Buiten dat li en div geen default gedrag hebben, ga je een eventListener hangen aan alle divs en li's in het gehele DOM.