11519 sujets

JavaScript, DOM et API Web HTML5

Bonjour,
Je souhaiterais faire un simple toggle sur un attribut mais je ne comprends pas pourquoi le else ne fonctionne pas.


$( function() 	{ 
			$( "#langs" ).on( "click", function() {
		 	if ($("#lang-list").attr("hidden")) {
				$("#lang-list").removeAttr("hidden");
		} else { 
				$("#lang-list").attr("hidden");
		};
    		});
		});

Modifié par Hermann (30 Oct 2024 - 16:29)
Administrateur
Bonjour,

Ah ben je viens d'en avoir besoin pour remplacer un .show() (non je ne veux pas de display: block; j'ai un flex ou grid en place Smiley baille ) dans un projet en refonte Smiley ravi
Il te faut l'écrire à la XML, enfin préciser quelle valeur tu veux parce que jQuery ne sait pas distinguer les types de valeurs pour différents attributs (class, id et hidden diffèrent par exemple).

$(sel).attr("hidden", "hidden");


Et merci pour le removeAttr(), j'étais en train de faire un
$(sel).attr("hidden", false);
Salut,

Vous ne pouvez pas juste utiliser la fonction toggleAttribute ? (c'est du javascript de base pas du jquery)
Par exemple pour cette page avec le Message de répondre en bas :
document.getElementById("message").toggleAttribute("hidden");
Meilleure solution
Modérateur
Mathieuu a écrit :
Salut,

Vous ne pouvez pas juste utiliser la fonction toggleAttribute ? (c'est du javascript de base pas du jquery)
Par exemple pour cette page avec le Message de répondre en bas :
document.getElementById("message").toggleAttribute("hidden");


rooooo, Smiley confused
Je ne me souvenais plus du tout de cette méthode en vanillaJS. Merci Mathieuu pour cette piqure de rappel Smiley smile
Felipe a écrit :
Bonjour,

Ah ben je viens d'en avoir besoin pour remplacer un .show() (non je ne veux pas de display: block; j'ai un flex ou grid en place Smiley baille ) dans un projet en refonte Smiley ravi
Il te faut l'écrire à la XML, enfin préciser quelle valeur tu veux parce que jQuery ne sait pas distinguer les types de valeurs pour différents attributs (class, id et hidden diffèrent par exemple).

$(sel).attr("hidden", "hidden");


Et merci pour le removeAttr(), j'étais en train de faire un
$(sel).attr("hidden", false);


Salut Felipe, merci mais je veux juste manipuler l'attribut (sans valeur) ou alors j'ai pas tout pigé.


Mathieuu a écrit :
Vous ne pouvez pas juste utiliser la fonction toggleAttribute ? (c'est du javascript de base pas du jquery)
Par exemple pour cette page avec le Message de répondre en bas :


Ah ben voilà tout simplement ! Je savais même pas que le ToggleAttribute existait !
Merci ça marche !