11540 sujets

JavaScript, DOM et API Web HTML5

Bonjour,

J'ai créé 3 boites avec une bordure. Quand on clique sur une boite, la bordure disparait.
Mais je veux que la bordure reapparaisse quand on clique sur une autre boite.
Je n'arrive pas à trouver la solution!
Quelqu'un aurait une idée? Ca doit être tout bête, mais je butte!

Voila mon code :

div {
	width:200px;
	height:200px;
	background: black;	
	float:left;
	margin-right:10px;
	border:10px red solid;
}



<div>
</div>

<div>
</div>

<div>
</div>


<script>
jQuery(document).ready(function(){
	$('div').click(function(){
		$(this).css('border','none');
		$('div:not('this')').css('border','10px red solid');
	});
});
</script>


Un grand merci pour votre aide!
Modifié par aivyl (19 Jun 2013 - 12:40)
Hello,

Tu n'y arrivera pas avec la méthode que tu as choisie pour sélectionner tes div. Pour utiliser le :not efficacement il faudrait ajouter une class. Mais ça sera plus simple avec le .not(). Smiley ravi

Voici une solution à ton problème :

$('div').not($(this)).css('border','10px red solid');
Merci Oken!! Il me manquait le .not()!! Smiley smile

Evidemment ma question était fictive, je veux l'appliquer à autre chose de plus compliqué.. Smiley smile

Est ce que tu penses que la meme ligne peut fonctionner avec le nom d'une variable préalablement déclarée à la place du (this) ?

J'essaye, mais ca ne fonctionne pas.. Peut etre est ce normal?