11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Voila ce que je cherche a faire :
J'ai une div qui se déplie (fonction toggle jquery) via un bouton.

J'aimerais pouvoir changer l'image de ce bouton en fonction de l'état de ma div.

Si ma div est visible -> mon bouton est sous la forme d'un "-"
Si ma div est invisible -> mon bouton est sous la forme d'un "+"

J'ai fait une petite fonction JS mais apparemment, ma condition n'est pas bonne (mon bouton ne change qu'une fois d'apparence)

Voici un extrait de ma fonction :


if ($("#"+id).css('display')=='none')
	{
		$("#"+bouton).empty();
		$("#"+bouton).append("<input type='image' src='../img/btn_deplier_pack.png' onclick=plier_deplier('"+id+"','"+bouton+"');>");
	}
	else
	{
		$("#"+bouton).empty();
		$("#"+bouton).append("<input type='image' src='../img/btn_plier_pack.png' onclick=plier_deplier('"+id+"','"+bouton+"');>");
	}


merci à vous pour votre aide Smiley smile
Modifié par Yokii (08 Sep 2009 - 10:33)

if ($("#"+id).css('display')=='none') $("#"+bouton + " input").attr("src", "../img/btn_deplier_pack.png");
else $("#"+bouton + " input").attr("src", "../img/btn_plier_pack.png");


Essaie déjà avec ça c'est plus simple.
Skoua a écrit :

if ($("#"+id).css('display')=='none') $("#"+bouton + " input").attr("src", "../img/btn_deplier_pack.png");
else $("#"+bouton + " input").attr("src", "../img/btn_plier_pack.png");


Essaie déjà avec ça c'est plus simple.

Plus simple que mon exemple? Es-tu sûr d'avoir bien regardé? Smiley sweatdrop
Bonjour,

J'ai bien regarder ton exemple benjamin, si je comprend bien tu te sert des css plutôt que du javascript. Cette solution me parait plus simple ... Je testerais ca plus tard.

Skoua, ta solution simplifie l'écriture, mais je pense que c'est au niveau du test que ca foire car j'entre a chaque fois dans ma boucle conditionnelle ...

Merci de vos réponses en tout cas Smiley smile
Re a tous !

J'ai enfin trouvé la solution !!
Ben au final ma fonction était bonne à une exception prés ! je plaçais le toggle de jquery juste avant mon test du display ce qui apparemment, nuisait au bon fonctionnement du tout.

J'ai mis mon toogle en fin de fonction et tout marche parfaitement !

Merci a vous de votre aide en tout cas ^^

je passe le code de ma fonction pour ceux qui voudrais faire la même chose Smiley langue


function plier_deplier(id_div,id_div_bouton)
{
	
	var id=id_div;
	var bouton=id_div_bouton;
	
	if ($("#"+id).css('display')!='none') 
		$("#"+bouton + " input").attr("src", "../img/btn_deplier_pack.png");

	else 
		$("#"+bouton + " input").attr("src", "../img/btn_plier_pack.png");
	
	$("#"+id).toggle("blind");
	
}